这里写目录标题
使用 NGINX 作为 HTTPS 正向代理服务器 - 操作部分
正常情况下, 因为 nginx 不支持 CONNECT, 所以无法正向代理 https 网站, 本文就为了打破这个而生。
本文参考自 这里: https://blog.csdn.net/wan212000/article/details/120814806
1. 编译
因为 ngx_http_proxy_connect_module 模块的兼容性: https://github.com/chobits/ngx_http_proxy_connect_module#compatibility, 这里推荐使用 nginx-1.18.0 版本和 ngx_http_proxy_connect_module-v0.0.2
2. 配置 nginx 同时支持 HTTP 和 HTTPS 代理
2.1. 支持 HTTP
普通的 7 层代理就可以了:
resolver 114.114.114.114;
server {
listen 80;
location / {
proxy_pass $scheme://$http_host$request_uri;
}
}
2.2. 支持 HTTPS
2.2.1. 额外安装插件 ngx_http_proxy_connect_module
这个也是工作在 7 层。但是是 “普通代理” 模式, 需要在客户端配置代理服务器的地址和端口。
2.2.2. 不额外编译安装插件
不额外编译安装插件, 只能在 4 层进行配置, 且是 “透明代理” 模式, 即需要配置 hosts, 将需要代理的域名直接指向代理服务器即可, 不需要在客户端指定代理服务器地址和端口:
stream {
resolver 114.114.114.114;
server {
listen 443;
ssl_preread on;
proxy_connect_timeout 5s;
proxy_pass $ssl_preread_server_name:$server_port;
}
}
nginx 配置透明代理, 不是太好, 建议最好用 squid。