Nginx + Tomcat集羣部署時,後端Tomcat需要取得用戶的IP,這時通過
request.getRemoteAddr()
取得的始終是 Nginx 所在的內網地址
由於用戶請求經過Nginx,Nginx轉發了請求到Tomcat後,Tomcat取得的始終是Nginx的Ip。
如果需要取得真實用戶IP,需要在Nginx上做些配置。
location / 下設置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
重啓nginx.
Java代碼,從請求頭中取得真實IP
request.getHeader("X-Real-IP")