1.环境准备:
服务器A:可上外网的内网服务器
服务器B:不可上外网的内网服务器
2.在服务器器上安装nginx及配置:
以下步骤在服务器A操作:
yum -y install gcc gcc-c++ pcre-devel pcre zlib-devel zlib openssl-devel openssl patch
获取 nginx 和 https 代理模块以及补丁包
Nginx下载官网:http://nginx.org/en/download.html
这里下载安装的是:nginx-1.20.2.tar.gz
tar -zxf nginx-1.20.2.tar.gz
cd nginx-1.20.2.tar.gz/
https 模块下载
yum install -y git
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
其中 patch 目录是补丁包存放目录,里面包含之前nginx版本对应的所有补丁包,当前对应关系如下:
![](https://i-blog.csdnimg.cn/blog_migrate/6cae4c10e8cecc9a4fe3156e3abc99fe.png)
patch模块:
yum install -y patch pcre pcre-devel
patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_1018.patch
安装nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=ngx_http_proxy_connect_module
make && make install
正向代理配置
编辑nginx配置文件,添加如下:
server {
listen 8443;
resolver 114.114.114.114;##代理服务器的DNS,linux查看命令为cat /etc/resolv.conf
server_name localhost;
proxy_connect;
proxy_connect_allow 443 80;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
location / {
proxy_set_header Host $host;
proxy_pass $scheme://$http_host$request_uri; #设定代理服务器的协议和地址
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502;
}
}
然后启动nginx服务。
3.在服务器B设置:
使用命令测试:
curl -I --proxy 服务器A:8443 http://nginx.org
curl -I --proxy 服务器A:8443 https://www.baidu.com
设置全局代理
vim /etc/profile:
添加如下:
## 全局代理
http_proxy=服务器A:8443
https_proxy=服务器A:8443
ftp_proxy=服务器A:8443
export http_proxy
export ftp_proxy
export https_proxy
source /etc/profile