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