Nginx反向代理Tomcat服務器獲取真實IP

通過nginx反向代理到tomcat服務器時,在tomcat
服務器中查看日誌access.log顯示的IP時nginx的地址,如何能看到客戶真實的IP地址呢?

1. 配置nginx (添加下文中的粗體)

	vim nginx.conf
	---
	server {
       listen   80;
       server_name  localhost;
       location / {
           root   /var/www/html/;
           index  index.html index.htm;
        }
       location /xmbank/ {
            proxy_pass http://192.168.3.10:8080/xmbank/;
            #添加以下三行
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

2. 修改tomcat配置文件

增加 Valve className=“org.apache.catalina.valves.RemoteIpValve” 配置
修改 Valve className=“org.apache.catalina.valves.AccessLogValve” pattern中的配置 爲 %{X-Real-IP}i 即可

vim conf/server.xml
---
	 
<Valve className="org.apache.catalina.valves.RemoteIpValve"  
           remoteIpHeader="x-forwarded-for"
           remoteIpProxiesHeader="x-forwarded-by" /> #此段添加
            
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
   prefix="localhost_access_log" suffix=".txt"
   pattern="%{X-Real-IP}i %l %u %t "%r" %s %b" /> #修改此處

3. 保存重啓,在logs/access.log日誌中就可以看到客戶源真實IP了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章