爱在莫斯科 发表于 2016-12-26 08:01:18

Nginx + Tomcat集群 中取得远程用户IP问题的解决办法

  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")
 
页: [1]
查看完整版本: Nginx + Tomcat集群 中取得远程用户IP问题的解决办法