1. 程式人生 > >Nginx多層反向代理透傳客戶端真實IP

Nginx多層反向代理透傳客戶端真實IP

file width fff 透傳 cati 異常 查看 passwd 1.2

Nginx的反向代理能非常強大,可以配置多層反向代理,多層代理中最關心的就是客戶端IP的信息傳遞情況,當我們遇到問題後,分析日誌是解決問題最有效的途徑之一,涉及代理時我們肯定會分析源IP,目標IP等信息,查看相關的異常。本次實例就通過兩層Nginx反向代理,模擬一下其客戶端IP的傳遞信息。

實驗環境:

操作系統 : Centos 7.X

Nginx : nginx1.12

序號環境名稱IP地址環境介紹
1訪問客戶端110.57.3.29mac 有Chrome等瀏覽器
2訪問客戶端210.57.31.206centos curl wget 訪問
3一層代理10.57.31.204將10.57.17.35代理到本地
4二層代理10.57.17.35將10.57.27.20代理到本地
5三層代理10.57.27.20代理本機的8083端口

實驗結果:

從二層代理和web應用服務器訪問日誌中看到訪問客戶端1和訪問客戶端2的IP地址。

1、客戶端1訪問10.57.31.204

技術分享圖片


10.57.31.204的日誌信息 拿到了10.57.3.29地址信息

技術分享圖片

10.57.17.35上的日誌信息

技術分享圖片

10.57.27.20 的日誌信息

技術分享圖片

二、10.57.31.206上命令行訪問10.57.31.204

10.57.31.204的日誌信息

技術分享圖片

10.57.17.35上得日誌信息

技術分享圖片

10.57.27.20 的日誌信息

技術分享圖片

三、配置信息

1、10.57.31.204

location / {
                proxy_pass http://www;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

技術分享圖片

2、10.57.17.35

 location / {
       proxy_http_version 1.1;
       proxy_set_header Connection "";
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header REMOTE-HOST $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       #satisfy any;
       #auth_basic            "Input FraudMetrix Nginx password ";
       #auth_basic_user_file  /usr/install/nginx/auth/htpasswd;

       proxy_pass      http://zstack;


        }

3、10.57.27.20

技術分享圖片


Nginx多層反向代理透傳客戶端真實IP