Nginx代理實現內網主機訪問公網服務


通過Nginx代理實現內網主機訪問公網和接口服務

1.需求:

  m2.test.com為公司測試環境的微信測試域名,因為要調用微信服務接口需要訪問外網,現通過Nginx代理現實此功能.

2.環境如下:

10.20.9.31 為內網測試環境Nginx的代理主機,代理測試環境的java程序.
10.100.64.18 是Nginx反向代理主機,公網映射地址為:124.251.12.198,在此上面配置的域名通過解析后可以直接訪問公網.
10.100.230.10 也是Nginx的代理主機,通過NAT轉發實現內網測試(10.20.9.31)和機房主機(10.100.230.10)的互通,其中10.100.64.18和10.100.230.10是互通的.

3.實現步驟:

10.100.64.18 Nginx配置:

server {
        listen  80;     
        server_name  m2.test.com;
        access_log    /tmp/access.log main;
        error_log    /tmp/error.log;


        location / {
            proxy_pass http://10.100.230.10:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For 
        }

}
#80和443端口都代理到230.10:80主機上面去.

10.100.230.10 Nginx配置

server {
        listen  80;
        server_name m2.test.com;
        access_log    /tmp/access.log main;
        error_log    /tmp/error.log;

        location / {
                proxy_pass http://10.20.9.31:80;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

}

#這個直接代理的是測試環境Nginx代理主機,也可以直接代理后端測試環境java主機,但是建議直接代理后端Nginx主機,然后再內網Nginx代理內網測試java程序,已方便維護.

10.20.9.31 Nginx配置,代理測試環境java主機程序.

server {
    listen 80;
    server_name m2.test.com;
    access_log /tmp/access.log main;
    error_log /tmp/error.log;

    location / {
        proxy_pass      http://10.20.9.53:8009;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
    
 
    location /static {
        alias /opt/mobile/static;
    }

}

#這個代理就可以對后端程序進行代理和設置

實現dns解析地址

m2.test.com 124.251.12.198,這樣就實現了通過代理實現內網訪問公網的服務.

 

 結語:上面的方法實現就Ngnix代理走了三次,其實也可以直接在10.100.64.18主機做NAT地址轉發訪問10.20.9網段的地址,少走一層代理維護也方便.

 

 

  

 


免責聲明!

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



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