X-Forwarded-不显示在tomcat7访问日志中

我试图在ELB后面运行的tomcat上打印远程客户端IP,出于某种原因,它不会被打印到访问日志中。 我的elbconfiguration是:80 – > 8080 443 – > 8080在server.xml上运行tomcat7和我的主机configuration是:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Remote IP Valve --> <Valve className="org.apache.catalina.valves.RemoteIpValve" /> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <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 &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" /> </Host> 

我也试过模式“结合”。

访问日志行的示例:

 - - - [18/Feb/2013:19:12:33 +0000] "GET URL HTTP/1.1" 200 1704 "remote URL" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17" 

希望在这里一些帮助家伙。 谢谢

我发现这是与支持RemoteIpValve的“常见”日志格式相当的最准确的:

 "%{org.apache.catalina.AccessLog.RemoteAddr}r %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" 

尝试以下操作:

  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="combined" resolveHosts="false"/> 

它看起来像默认是忽略私人地址,在我的情况下,我得到的IP与我面向外部的ELB,但内部ELBS(其中有两个10.xxx地址)只显示 – 地址使用相同的configuration。