Nginx多層反向代理透傳客戶端真實IP
阿新 • • 發佈:2018-08-04
file width fff 透傳 cati 異常 查看 passwd 1.2 Nginx的反向代理能非常強大,可以配置多層反向代理,多層代理中最關心的就是客戶端IP的信息傳遞情況,當我們遇到問題後,分析日誌是解決問題最有效的途徑之一,涉及代理時我們肯定會分析源IP,目標IP等信息,查看相關的異常。本次實例就通過兩層Nginx反向代理,模擬一下其客戶端IP的傳遞信息。
實驗環境:
操作系統 : Centos 7.X
Nginx : nginx1.12
序號 | 環境名稱 | IP地址 | 環境介紹 |
1 | 訪問客戶端1 | 10.57.3.29 | mac 有Chrome等瀏覽器 |
2 | 訪問客戶端2 | 10.57.31.206 | centos 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