如何使用nginx做正向代理访问外网?

有台无法访问外网的内网服务器需要访问互联网。所以搭建一台nginx作为正向代理访问外网。但是现在所访问的协议是https的。如何进行配置呢? 配置了很…
关注者
9
被浏览
71,294

3 个回答

1.安装依赖并下载nginx

yum -y install gcc
yum install -y gcc-c++ 
yum install -y pcre pcre-devel 
yum install -y zlib zlib-devel 
yum install -y openssl openssl-devel
mkdir -p /mnt/soft/installPackage
cd /mnt/soft/installPackage
wget http://nginx.org/download/nginx-1.18.0.tar.gz

2.解压nginx源码文件

tar -zxvf nginx-1.18.0.tar.gz

3.下载正向代理插件

yum install git
yum -y install patch
git clone https://gitee.com/web_design_of_web_frontend/ngx_http_proxy_connect_module.git

4.编译正向代理插件

cd /mnt/soft/installPackage/nginx-1.18.0
patch -p1 < /mnt/soft/installPackage/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch

5.编译安装nginx

./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/mnt/soft/installPackage/ngx_http_proxy_connect_module
make&& make install

6.配置正向代理

cat /etc/resolv.conf
#获取DNS服务器IP,在nginx.conf中添加server节点,修改resolver后的x.x.x.x
 server {
     listen 18088;
     resolver x.x.x.x valid=60s ipv6=off;
     resolver_timeout 30s;
     proxy_connect;
     proxy_connect_allow            443 80;
     proxy_connect_connect_timeout  30s;
     proxy_connect_read_timeout     30s;
     proxy_connect_send_timeout     30s;
      location / {
         proxy_pass $scheme://$http_host$request_uri;
         proxy_set_header Host $host;