X-Forwarded-Por não aparecer no log de acesso do tomcat7

2

Estou tentando imprimir o IP do cliente remoto em um tomcat que está sendo executado por trás de um ELB e, por algum motivo, ele não está sendo impresso no log de acesso. meu eldu configuartion é: 80 - > 8080 443 - > 8080 Executando tomcat7 e minha configuração de host no server.xml é:

<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>

Eu também tentei com padrão "combinado".

uma amostra de uma linha do log de acesso:

- - - [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"

Gostaria de receber ajuda aqui pessoal. Obrigado

    
por Amnon 18.02.2013 / 20:22

2 respostas

3

Descobri que este é o equivalente mais preciso ao formato de log "comum" com suporte para RemoteIpValve :

"%{org.apache.catalina.AccessLog.RemoteAddr}r %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;"
    
por 02.01.2016 / 21:43
0

Tente o seguinte:

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

Parece que o padrão é ignorar endereços privados, no meu caso eu recebo IPs com meus ELBs externos, mas o ELBS interno (que tem endereços 10.xxx em ambos os lados) é mostrado - para o endereço usando a mesma configuração .

    
por 26.03.2015 / 18:04