Tomcat 获取客户端真实IP X-Forwarded-For
代码实现:
在Host标签下面添加代码:
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" remoteIpProxiesHeader="x-forwarded-by" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%{X-Forwarded-For}i %a %t %r %s %b" />
1. 确保Tomcat识别真实IP地址
首先,你需要确保Tomcat
的server.xml
文件中配置了RemoteIpValve
,以便Tomcat能够识别并信任代理服务器(如Nginx)传递的X-Forwarded-For
头部中的客户端IP地址。这部分配置已经在之前的回答中详细描述过。
2.配置Tomcat日志记录IP地址
Tomcat的日志记录通常是通过logging.properties文件来配置的,该文件位于Tomcat的conf目录下。你可以编辑这个文件来添加或修改日志记录器(logger),以便记录包含客户端IP地址的日志条目。
注意:要确保Nginx或其他代理服务器正确配置了X-Forwarded-For头部,以便它包含客户端的真实IP地址。