Я хочу использовать RemoteIpValve
в tomcat8
веб-сервере.
Проблема: в результате request.remoteAddr
(который раньше был 127.0.0.1) обновляется внешним вызовомф.И, таким образом, RemoteAddrValve
отклоняет его, как если бы он имел внешний прямой доступ.
Вопрос: как я все еще могу перенаправить «реальный» внешний IP-адрес на tomcat, оставив tomcat принимать только локальные запросы, нотакже используйте RemoteIpValve
?
Tomcat настроен на разрешение только локального доступа через apache2 proxy
впереди:
context.xml
:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
AsЯ все еще хочу прочитать реальный запрос, например, если это был запрос http или https и т. Д., Я пересылаю эти поля в apache2 и включил оценку в tomcat в server.xml
с помощью:
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" />
В результате все, кроме запросов localhost, будет отклонено с 403 forbidden
.Это связано с тем, что tomcat заменяет реальный IP-адрес вызывающего абонента, а RemoteAddrValve
отклоняет его, конечно же.Как я могу предотвратить это?