背景
- 通常某些服务因为安全问题,限制固定访问,因此可以通过正向代理解决
- 访问某些国外的服务访问慢,可以通过正向代理中继缓解丢包和延迟高的问题
原理如图
Client
->Proxy server
发送HTTP CONNECT请求。Proxy server
利用HTTP CONNECT请求中的主机和端口与目的服务器建立TCP连接。Proxy server
->Client
返回HTTP200
响应。Client
和Proxy server
建立起HTTP CONNECT隧道,HTTPS流量到达代理服务器后,直接通过TCP透传给远端目的服务器。代理服务器的角色是透传HTTPS流量,并不需要解密HTTPS
。
测试实验
编译nginx
在之前的编译nginx的基础上,我们对nginx二进制增加新的模块ngx_http_proxy_connect_module[1]
# cd /root/workspace/packages/nginx && git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
# ./configure --prefix=/webserver/nginx18 --user=www --group=www --with-pcre --with-zlib=/root/workspace/packages/nginx/zlib-1.2.8 --with-openssl=/root/workspace/packages/nginx/openssl-1.0.2d --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --add-module=/root/workspace/packages/nginx/ngx_devel_kit-0.3.0 --with-ld-opt=-ljemalloc --with-stream --with-http_ssl_module --add-module=/root/workspace/packages/nginx/nginx_upstream_check_module-0.3.0 --with-http_gzip_static_modu