那个网站可以做全景图,设计素材图库,重庆网红景点有哪些,成都网站只nginx前端代理tomcat取真实客户端IP2011年12月14日⁄ nginx⁄ 暂无评论⁄ 被围观 3,000 次使用Nginx作为反向代理时#xff0c;Tomcat的日志记录的客户端IP就不在是真实的客户端IP#xff0c;而是Nginx代理的IP。要解决这个问题可以在Nginx配置一个新的Header#xff0c;用来… nginx前端代理tomcat取真实客户端IP 2011年12月14日⁄ nginx⁄ 暂无评论⁄ 被围观 3,000 次 使用Nginx作为反向代理时Tomcat的日志记录的客户端IP就不在是真实的客户端IP而是Nginx代理的IP。要解决这个问题可以在Nginx配置一个新的Header用来存储$remote_add然后再Tomcat获取记录这个值。 1.Nginx新增配置 server {listen 80;server_name www.xxxxx.com;location / {proxy_pass http://IP:8080/;proxy_set_header X-Real-IP $remote_addr;}
} 可以参见http://wiki.nginx.org/NginxHttpProxyModule 其实就是新增了一个名为X-Real-IP值为真实客户端IP的头信息。 2.修改tomcat日志配置(host/host中间) Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogs prefixtomcat_access_log. suffix.txt pattern%a %r %t %{X-Real_IP}i resolveHostsfalse/ 可以参见http://www.docjar.org/docs/api/org/apache/catalina/valves/AccessLogValve.html 没有Nginx这一层的时候直接用%a就可以获得客户端IP现在我们得用%{X-Real-IP}i 来获得真实的IP了。 nginx(1…n)tomcat集群部署时后端tomcat需要取得用户的IP这时通过 request.getRemoteAddr()取得的始终是127.0.0.1. 由于用户请求经过nginxngigx转发了请求到tomcat后,tomcat取得的始终是nginx的Ip如果需要取得真实用户IP只需要在ngix上做些配置。 location / 下设置 proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; 测试配置:./sbin/nginx -t -c conf/nginx.conf 正确后重启nginx. Java代码修改如下 out.println(X-Real-IP : request.getHeader(X-Real-IP) br); 其中X-Real-IP即用户真实IP 杨航收集技术资料分享给大家