搭建HTTP/2代理教程


nghttpx 是一个 HTTP2 代理,HTTP2 是新一代的 HTTP 协议,但一些老牌的 HTTP 代理比如 squid 并不支持 HTTP2 协议,就需要 nghttpx 来将 HTTP2 协议翻译成 HTTP1.x 的协议,所以要搭建一个HTTP2 代理你需要一个 HTTP 代理来配合使用。

更新记录

原文链接

具体请求流程是:

国内网络VPS自由网络目标网站
你的浏览器→ (加密)HTTP2 →nghttpx → squid→ HTTP(S) →目标网站

服务器安装和配置

配置 squid

在商店中选择 squid 并创建,无需填写任何选项(端口也不用填)安装即可。

注意,如果 Squid 无法启动,日志中显示 FATAL xcalloc: Uable to allocate * 时,这是内存不足引起的错误。你可以尝试添加交互分区来解决。

sudo su
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p

注意重启后swap会取消挂载.请根据相应系统查询写入fstab的命令.这里给出Ubuntu和Centos的

Ubuntu:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Centos:echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab

然后卸载重装 Squid 即可。

配置 nghttpx

SSL 证书的获取你可以参考 如何自动生成可信的SSL证书,如果使用自签名证书你需要在客户端导入CA。

安装即可,然后你就有一个非常安全的 HTTPS 代理了。开始配置客户端吧。

客户端

Chrome

Chrome 支持HTTP2,可以使用 Proxy SwitchyOmega 来使用

Surge

nghttpx = https, DOMAIN, 端口,
  #OS 

« nohup和&后台运行,进程查看及终止 MySQL 多表 update SQL语句总结 »