Мы вводим заголовок x-forwarded-for в loadbalancer, который отправляет запрос на веб-сервер apache, который передает proxys (mod_proxy_balancer) запрос на внутренний сервер Tomcat. мы видим IP-адрес клиента в заголовке «x-forwarded-for» на apache, но мы получаем «-» в журналах доступа Tomcat.
мы добавили IP-адрес балансировщика нагрузки в список internalProxies на Tomcat.
из https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html похоже, что для безопасных соединений (запросы, поступающие от внутренних прокси) x-forwarded-for становится NULL, а IP-адрес клиента назначается удаленному адресу. это правильно? Есть ли способ сохранить клиентский IP-адрес в заголовке x-forwarded-for на tomcat при использовании внутренней настройки прокси?
Спасибо
В нашем случае AJP используется между веб-серверами и серверами Tomcat. Обновление: я нашел этот ответ в документации Tomcat, https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html, что, я думаю, и происходит. В частности:
Если входящий request.getRemoteAddr () соответствует списку внутренних прокси-серверов клапана: