搭建Nginx正向代理服務


需求背景:

    前段時間公司因為業務需求需要部署一個正向代理,需要內網服務通過正向代理訪問到外網移動端廠商域名通道等效果,之前一直用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正向代理:

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}


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;

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;
        }

    }



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;

       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }   

}  

當配置文件配置好之后保存即可,重啟nginx,進行測試:

去內網服務器里curl,可以在環境變量里添加代理:

vim  /etc/profile
...
...
#export https_proxy=正向代理IP:端口
export https_proxy=192.168.3.17:89

  

另一種 方式不用加環境變量,臨時代理

#curl -i  --proxy 代理IP:端口      要訪問域名
curl -i  --proxy 192.168.3.17:89      www.baidu.com

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM