欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu20.04部署nginx正向代理服务

程序员文章站 2022-07-14 16:31:04
...

由于默认的nginx发布版本不支持正向代理功能,需要借助ngx_http_proxy_connect_module这个三方插件来完成,具体步骤如下

1、下载nginx源码包,笔者使用的是1.19.10版本,具体下载地址为:http://nginx.org/download/

2、安装依赖组件,sudo apt install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev

3、下载ngx_http_proxy_connect_module三方组件源码,下载地址为https://github.com/chobits/ngx_http_proxy_connect_module

4、执行命令

patch -p1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect.patch

5、执行configure命令

./configure --add-module=/path/to/ngx_http_proxy_connect_module

6、执行make & make install进行编译及安装

7、编译成功后会把nginx放在/usr/local/nginx目录下,其他目录参照nginx官网http://nginx.org/en/docs/configure.html

8、找到nginx的配置文件,默认为/usr/local/nginx/conf目录,添加如下配置:

server {
                 # 监听端口,这样其他内网机器就可以通过nginx服务器的8888端口访问外网,所以nginx必须能够访问外网
                 listen                         8888;

                 # dns resolver used by forward proxying
                 #resolver    180.76.76.76;
                 resolver 127.0.0.53 ipv6=off;
                 resolver_timeout 30s;
                 # forward proxy for CONNECT request
                 proxy_connect;
                 proxy_connect_allow            443 563;
                 # 10秒对笔者来说有点短,会出现下载超时情况,所以延长至600s
                 proxy_connect_connect_timeout  600s;
                 proxy_connect_read_timeout     600s;
                 proxy_connect_send_timeout     600s;
                 send_timeout 600;

                 # forward proxy for non-CONNECT request
                 location / {
                         proxy_pass http://$host;
                         proxy_set_header Host $host;
                 }
        }

9、启动nginx即可

 

参照文章:

1、http://nginx.org/en/docs/configure.html

2、https://github.com/chobits/ngx_http_proxy_connect_module

3、https://github.com/chobits/ngx_http_proxy_connect_module#configuration-example

相关标签: linux nginx