«

使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南

俞事 发布于 阅读:217


  1. 安装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  
  2. 配置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;  
       }  
      }  
  3. 启动Nginx并验证配置

    • 启动服务:
      sudo /usr/local/nginx/sbin/nginx  
    • 检查语法错误:
      sudo /usr/local/nginx/sbin/nginx -t  
  4. 客户端使用代理

    • 配置客户端工具(如curl):
      curl --proxy http://your_nginx_server_ip:3128 https://example.com  
    • 浏览器设置代理为your_nginx_server_ip:3128
  5. 防火墙放行端口

    • 开放TCP 3128端口:
      sudo ufw allow 3128/tcp  
  6. 处理HTTPS流量

    • 确保配置中包含proxy_ssl_server_name on;以支持SNI。
    • 如需代理自签名证书站点,添加:
      proxy_ssl_verify off;  
  7. 日志与调试

    • nginx.confhttp块启用日志:
      error_log /var/log/nginx/error.log debug;  
      access_log /var/log/nginx/access.log;  
    • 重启Nginx后检查日志。

取消
微信二维码
微信二维码
支付宝二维码