request.getRemoteAddr()值为127.0.0.1

xiaoeyv
2年前发布

站长刚入门 JSP,想获取用户 IP,调用函数发现获取的 IP 为 127.0.0.1

  • 架构:Nginx 反向代理 Tomcat

首先修改 Nginx 的配置文件,在反向代理处添加如下代码:

proxy_set_header Host test.paolu.host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;

然后修改 Tomcat 的配置,在 <Host></Host> 块内添加:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Valve className="org.apache.catalina.valves.RemoteIpValve"
       remoteIpHeader="x-forwarded-for"
       proxiesHeader="x-forwarded-by"
       protocolHeader="x-forwarded-proto" />
</Host>

最后重启 Tomcat 即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 共1条
OωO
取消
  1. 头像
     · 
    回复

    欢迎加入 Typecho 大家族