安装搭建Nginx正向代理

2022-11-22 20:29:42 浏览数 (1)

需求 A服务器不能访问C服务,B服务器能访问C服务,A需要通过B的代理来访问C服务。

准备文件(ng在官网,补丁包在github上搜的到):

nginx-1.22.0.tar.gz #nginx包

ngx_http_proxy_connect_module-master.zip #代理补丁包

提前安装依赖

代码语言:javascript复制
yum install gcc gcc-c   automake pcre pcre-devel zlip zlib-devel openssl openssl-devel

安装编译ngxin

代码语言:javascript复制
tar zxvf nginx-1.22.0.tar.gz
#解压nginx包
cd nginx-1.22.0.tar.gz
unzip ngx_http_proxy_connect_module-master.zip 
#解压代理补丁包
patch -d /usr/local/nginx-1.22.0/ -p 1 < /usr/local/nginx-1.22.0/ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_102101.patch
#打上补丁
#安装补丁的时候如果没有patch命令加上即可 yum -y install patch
./configure  --with-http_realip_module --with-threads --add-module=/usr/local/nginx-1.22.0/ngx_http_proxy_connect_module-master
#按需配置nginx
make
#编译
make install
#安装
cd /usr/local/nginx/sbin

安装完毕后去nginx安装目录中配置文件下加上代理配置

代码语言:javascript复制
cd /usr/local/nginx/conf
vi nginx.conf
代码语言:javascript复制
server {
        listen       8086;
        resolver 8.8.8.8;
        proxy_connect;
        #proxy_connect_allow            443 563;
                        location / {
                                proxy_pass https://$host$request_uri;
                                proxy_buffer_size 64k;
                                proxy_buffers 32 32k;
                                proxy_busy_buffers_size 128k;

                                proxy_set_header Content-Type $http_content_type;
                                proxy_set_header Host $http_host;
                                proxy_set_header Authorization $http_Authorization;
                        }
        }
    }
代码语言:javascript复制
加上配置后启动nginx
代码语言:javascript复制
cd /usr/local/nginx/sbin
./nginx -t
#检查配置,为ok的话就可以启动
./nginx
#启动

启动成功后查看端口是否开启代理

代码语言:javascript复制
netstat -tunlp | grep 8086
#查看对应端口情况
#↓正常情况↓
#tcp  0   0 0.0.0.0:8086      0.0.0.0:*     LISTEN   3552/nginx: master

启动正常后可以在另一台服务器用curl指令进行测试

代码语言:javascript复制
curl --proxy "xxx.xxx.xxx.xxx:8086" -v "www.baidu.com"
#响应结果中有HTTP/1.1 200 OK即为代理访问成功

还可以去代理服务器ngxin日志中查看到对应的代理访问记录

代码语言:javascript复制
cd /usr/local/nginx/logs
tail -f access.log
################
[30/Aug/2022:19:19:26  0800] "GET HTTP://www.baidu.com/ HTTP/1.1" 200 2443 "-" "curl/7.29.0"

此处配置的是通用的间接代理方式,间接代理与直接代理的区别与方法可以参考另一篇文章,《Nginx请求直接代理与间接代理配置》

Post Views: 94

0 人点赞