2

我浏览了很多与此问题相关的帖子,但找不到正确的答案。这是我的问题:

我正在尝试使用 AccessLogValve 和 RemoteIpValve 在 Tomcat 中启用请求日志记录,以便获取发起请求的 IP 地址,而不是来自负载平衡器的 IP。

我将我的 Tomacat 设置如下:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
prefix="access_log." suffix=".txt" 
pattern="%h %l %u %t &quot;%r&quot; %s %b %D"  
resolveHosts="false"/>

<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="127\.0\.0\.1| +IP adress from the loadbalancer"
trustedProxies="127\.0\.0\.1| +IP adress from the loadbalancer"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"/>

当我使用 Apache 代理对 Tomcat 的请求时,我将以下内容添加到我的 httpd-vhosts.conf

<VirtualHost *:80>
...
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !http
RewriteRule !/status http://%{SERVER_NAME}%{REQUEST_URI} [L,R]

但我的日志文件仍然只显示来自我的负载均衡器的 IP。

所以我想我在这里遗漏了一些东西,并非常感谢一些帮助。谢谢一堆

4

0 回答 0