Nginx 後端 日誌檔案 獲取的都是 前端 負載均衡器的IP 想要獲取使用者的真實IP 必須 使用Nginx 的模組 http_realip_module 才行!!
1. 編譯 Nginx 的時候 開啟 http_realip_module 模組
./configure --user=upload --group=upload --prefix=/opt/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
make
make install
2. 完成以後修改配置
1.
Nginx 負載均衡 功能配置項增加
proxy_set_header X-Real-IP $remote_addr;
2.
後端 WEB 裡增加
set_real_ip_from 192.168.1.0/24; #允許被信任的IP段
set_real_ip_from 192.168.2.1; #允許被信任的IP段
real_ip_header X-Real-IP;
新增在下面
location ~ .*\.php?$
{
後端 WEB 必須要重啟 Nginx 才能生效..
完成以後 tail -f access.log 檢視IP是已經是真實IP
tomcat 中 配置
1.
Nginx 負載均衡 功能配置項增加
proxy_set_header X-Forwarded-For $remote_addr;
2.
tomcat 找 到 server.xml
查詢 localhost_access_log
將
pattern="%h %l %u %t "%r" %s %b" />
修改為
pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false"/>
儲存,修改!!
重啟 tomcat ,既可生效