被Nginx代理后从REQUEST获取客户端IP地址
应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器.这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义.今天就来配置下 nginx+tomcat 后, 程序获取ip和 tomcat的访问日志localhost_access_log 获取ip.nginx+tomcat集群参
·
应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器.
这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义.
今天就来配置下 nginx+tomcat 后, 程序获取ip和 tomcat的访问日志localhost_access_log 获取ip.
nginx+tomcat集群参考以前的博客,这里是传送门
1.首先要在nginx中加个配置,即把用户ip保存下来
在nginx的配置文件中增加
位置要注意, 可以放在 location / 中, 如果你配置了.do, .action的转发, 那就要放在 .do,.action的配置中
2.修改程序中获取ip的方法,先取 X-real-ip的值
在server.xml中,修改AccessLogValve的配置如下
这里修改了时间格式,增加了X-real-ip获取,增加了 User-Agent的记录.
AccessLogValve具体配置参考 http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Logging
配置后,打印结果如下
更多推荐
已为社区贡献2条内容
所有评论(0)