nginx设置正向代理

1. 正向代理服务器上不能访问网络时候设置

1.1编辑DNS配置文件
vi /etc/resolv.conf
1.2 添加DNS配置
# 设置互联网的域名解析,如果是虚拟机,可以设置为你的网关地址,比如192.168.52.2(vmware的网关地址)
nameserver 114.114.114.114
1.3重启网络服务
systemctl restart network

2. 安装第三方ngx_http_proxy_connect_module模块

image

https://gitee.com/siusn/ngx_http_proxy_connect_module

2.1 根据nginx版本选择对应的补丁文件

image

2.2 打补丁

image

2.3 以前一直不知道怎么打补丁

image
这里的patch -pX 中的X跟下图中的这个需要剥离的路径有关,不需要剥离为0,剥离几个斜杠,就写几;因为当前打补丁的目录是nginx源码根目录下,图中红线标注部分需要剥离一个斜杠后(b/src/...),才能在该nginx目录下找到对应的文件

3. 正向代理服务器的nginx配置

#正向代理
server{
    resolver 114.114.114.114;
    resolver_timeout 30s;
    listen 80;
    proxy_connect;                          #启用 CONNECT HTTP方法
    proxy_connect_allow   443 80;  #指定代理CONNECT方法可以连接的端口号或范围的列表
    proxy_connect_connect_timeout  20s;     #定义客户端与代理服务器建立连接的超时时间
    proxy_connect_read_timeout  20s;     #定义客户端从代理服务器读取响应的超时时间
    proxy_connect_send_timeout  20s;     #设置客户端将请求传输到代理服务器的超时时间

    location / {
        proxy_pass $scheme://$http_host$request_uri;
    }
}

4. 代理设置及访问测试

image

参考

[1] centos7实现nginx部署支持http和https正向代理功能(安装ngx_http_proxy_connect_module模块)
[2] 码云ngx_http_proxy_connect_module
[3] diff 和 patch 命令——差异比较和打补丁

posted @ 2022-08-06 08:29  理舞  阅读(1689)  评论(0编辑  收藏  举报