Nginx 負載均衡 後端伺服器獲取前端使用者真實IP

丶小炒肉發表於2016-05-31

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  ,既可生效

相關文章