如何使用Tomcat和apache处理x-forwarded-proto

时间:2015-10-22 09:34:00

标签: java apache tomcat forwarding internal-load-balancer

我经历了很多与此问题相关的帖子,但我找不到合适的答案。这是我的问题:

我正在尝试使用AccessLogValve&amp ;;在Tomcat中启用请求记录。 RemoteIpValve用于获取发起请求的IP地址,而不是来自Loadbalancer的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]

但我的日志文件仍然只显示我的Loadbalancer中的IP。

所以我想我在这里丢东西,并会非常感激一点帮助。 非常感谢

0 个答案:

没有答案