您的位置:首页 > 运维架构 > Tomcat

使用nginx后让tomcat的localhost_access_log获得真实IP

2017-11-06 15:46 405 查看
配置nginx
在location节点下面加入如下代码
proxy_set_header Host $host;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

修改tomcat的server.xml配置文件
在Tomcat中要记录来访者真实IP,大家参考上面所述的tomcat日志配置语法,只需在日志模式中添加如下模式就行了:%{X-Real-IP}i
找到如下配置
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
修改成如下即可
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%{X-Real-IP}i %l %u %t "%r" %s %b" />


查看tomcat访问记录,有记录客户端IP地址



番外:
[b]设置记录来访客户真实IP与客户访问地址如下:[/b]
%h 访问的用户IP地址。(不是客户端IP地址的哦,要想在Tomcat中要记录来访者真实IP,只需在日志模式中添加如下模式就行了:%{X-Real-IP}i)
%h 访问的用户IP地址,如果nginx代理,那记录的就是nginx那台服务器IP,就是内网IP
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%{X-Real-IP}i %h  %l %u %t "%r" %s %b %T" resolveHosts="false"
fileDateFormat="yyyy-MM-dd"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息