需求背景:
前段时间公司因为业务需求需要部署一个正向代理,需要内网服务通过正向代理访问到外网移动端厂商域名通道等效果,之前一直用nginx做四层或者七层的反向代理,正向代理还是第一次配置,配置的过程也遇到些小坑,今天就分享出来。
安装环境准备:
nginx本身是不支持https协议请求转发,为了让nginx能达到这一效果需要借助第三方模块ngx_http_proxy_connect_module。首先下载这一模块:https://github.com/chobits/ngx_http_proxy_connect_module到服务器,然后准备nginx环境
yum -y install pcre-devel zlib-devel gcc gcc+c++ make openssl-devel pcre-devel zlib-devel patch
tar xf nginx-1.6.0.tar.gz
unzip /root/ngx_http_proxy_connect_module-master.zip
cd /root/nginx-1.6.0/
patch -p1 < /root/ngx_http_proxy_connect_module-master/proxy_connect.patch
./configure --add-module=/root/ngx_http_proxy_connect_module-master/ngx_http_proxy_connect_module
make && make install
编译安装成功后,配置nginx正向代理:
bash;gutter:true;</p>
<h1>user nobody;</h1>
<p>worker_processes 1;</p>
<h1>error_log logs/error.log;</h1>
<h1>error_log logs/error.log notice;</h1>
<h1>error_log logs/error.log info;</h1>
<h1>pid logs/nginx.pid;</h1>
<p>events {
worker_connections 1024;
}</p>
<p>http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;</p>
<p>server {
listen 88; #监听端口
resolver 183.60.82.98; #dns解析地址
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass https://$host$request_uri; #设定http代理服务器的协议和地址
proxy_set_header HOST $host;
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;
#root html;
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}</p>
<pre><code>}
</code></pre>
<p>server {
resolver 8.8.8.8; #dns解析地址
listen 89; #代理监听端口
proxy_connect;
proxy_connect_allow 443 563;
location / {
proxy_pass https://$host$request_uri; #设定https代理服务器的协议和地址
proxy_set_header HOST $host;
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;</p>
<pre><code> }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
</code></pre>
<p>}</p>
<pre><code>
当配置文件配置好之后保存即可,重启nginx,进行测试:
去内网服务器里curl,可以在环境变量里添加代理:
;gutter:true;
vim /etc/profile
…
…
#export https_proxy=正向代理IP:端口
export https_proxy=192.168.3.17:89
另一种 方式不用加环境变量,临时代理
bash;gutter:true;</p>
<h1>curl -i --proxy 代理IP:端口 要访问域名</h1>
<p>curl -i --proxy 192.168.3.17:89 www.baidu.com
Original: https://www.cnblogs.com/Dfengshuo/p/11911406.html
Author: fs_Dong
Title: 搭建Nginx正向代理服务
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585729/
转载文章受原作者版权保护。转载请注明原作者出处!