Есть 2 сценария: ваш кот не находится за каким-либо балансировщиком нагрузки или прокси-сервером или за одним из них. Если ваш кот не находится за прокси или балансировщиком нагрузки, это уже правильно. Для большей предосторожности можно добавить %a
, чтобы он мог получить удаленный IP-адрес, как указано в Access_Log_Valve
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%{X-Forwarded-For}i %h %F %l %u %t "%r" %s %b" />
To
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%{X-Forwarded-For}i %a %h %F %l %u %t "%r" %s %b" />
Если вы хотите использовать %h
для имени удаленного хоста, установите enableLookups=true на соединителе.
<!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -->
<Connector port="8080"
....
enableLookups="true"
....
/>
Но в любом случае, если кот находится за прокси или балансировщиком нагрузки, добавьте дополнительную конфигурацию, например:
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<Valve className="org.apache.catalina.valves.AccessLogValve" ....
IP-адреса прокси по умолчанию, используемые RemoteIpValve:
- 127.0.0.0/8
- 169.254.0.0/16
- 10.0.0.0/8
- 192.168.0.0/16
И, возможно, если вашего прокси здесь нет, добавьте конфигурацию внутренних прокси, чтобы поймать прокси:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="172.16.0.10|172.16.0.11" />
person
Fahim Bagar
schedule
24.07.2020