使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南
俞事 发布于 阅读:217
-
安装Nginx并启用代理模块
- 确保Nginx包含
ngx_http_proxy_connect_module
模块(默认不包含,需手动编译)。 - 下载Nginx源码及模块:
wget https://nginx.org/download/nginx-1.25.3.tar.gz git clone https://github.com/chobits/ngx_http_proxy_connect_module tar -zxvf nginx-1.25.3.tar.gz
- 编译并安装:
cd nginx-1.25.3 ./configure --add-module=../ngx_http_proxy_connect_module make && sudo make install
- 确保Nginx包含
-
配置Nginx正向代理
-
编辑
nginx.conf
,在http
块内添加:server { listen 3128; resolver 8.8.8.8; proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; location / { proxy_pass http://$http_host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_ssl_server_name on; } }
-
-
启动Nginx并验证配置
- 启动服务:
sudo /usr/local/nginx/sbin/nginx
- 检查语法错误:
sudo /usr/local/nginx/sbin/nginx -t
- 启动服务:
-
客户端使用代理
- 配置客户端工具(如curl):
curl --proxy http://your_nginx_server_ip:3128 https://example.com
- 浏览器设置代理为
your_nginx_server_ip:3128
。
- 配置客户端工具(如curl):
-
防火墙放行端口
- 开放TCP 3128端口:
sudo ufw allow 3128/tcp
- 开放TCP 3128端口:
-
处理HTTPS流量
- 确保配置中包含
proxy_ssl_server_name on;
以支持SNI。 - 如需代理自签名证书站点,添加:
proxy_ssl_verify off;
- 确保配置中包含
-
日志与调试
- 在
nginx.conf
的http
块启用日志:error_log /var/log/nginx/error.log debug; access_log /var/log/nginx/access.log;
- 重启Nginx后检查日志。
- 在