首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat:“X转发-For”不适用于负载均衡器

Tomcat:“X转发-For”不适用于负载均衡器
EN

Stack Overflow用户
提问于 2020-03-24 08:45:13
回答 1查看 1.9K关注 0票数 4

我们目前正在使用Tomcat 7更新76进行冗余服务器设置(2台服务器+1台负载均衡器)。为了满足我们公司的日志记录需求,我们正在尝试获取远程服务器的IP,这实际上是发送请求,而不是负载均衡器的IP。不幸的是,我们无法让它使用以下文档:

对于access日志记录和远程阀门,我们使用了以下配置:

代码语言:javascript
复制
<Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="xxx\.xxx\.xxx\.7|xxx\.xxx\.xxx\.8|xxx\.xxx\.xxx\.9"  remoteIpHeader="X-Forwarded-For" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="access_log." suffix=".log"
pattern="%{org.apache.catalina.AccessLog.RemoteAddr}r %l %u %t &quot;%r&quot; %s %b" 
requestAttributesEnabled="true" />

设置了请求头‘X转发-For’,并通过wireshark分析负载均衡器。然而,我们仍然只获得负载均衡器的IP,而不是远程客户端的IP。已经检查了配置的IP附件,并且它们是正确的。

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 18:27:19

改变AccessLogValve的模式是我的解决方案,如下所示:

代码语言:javascript
复制
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%{x-forwarded-for}i %l %u %t &quot;%r&quot; %s %b" />

来源:https://stackoverflow.com/a/36357291/1830268

完整模式属性选项如下:https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Access_Log_Valve/Attributes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60827540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档