Как зарегистрировать x-forwarded-by из nginx в spring-boot / tomcat (IPv4 / IPv6) - PullRequest
0 голосов
/ 08 июня 2018

Как мне зарегистрировать реальный IP-адрес клиента из nginx в tomcat / spring-boot через CommonsRequestLoggingFilter для IPv4 и IPv6?

У меня есть настройка nginx для обратного прокси-сервера Tomcat (через spring-boot), и яимели ограниченный успех с опцией server.use-forward-headers: true у Spring-boot.Работает с IPv4-адресами;однако, это все еще регистрирует 0: 0: 0: 0: 0: 0: 0: 1 (nginx) для адресов IPv6.Это проблема, потому что по умолчанию nginx и tomcat связываются с адресами как IPv4, так и IPv6, поэтому nginx будет перенаправлять запросы tomcat по одному или другому случайным образом.

Пример Операторы ведения журнала:

Before request [uri=/membershiprequest;client=128.250.87.102;user=admin]
Before request [uri=/activity;client=0:0:0:0:0:0:0:1;user=admin]

В идеале оба должны сказать:

Before request [uri=/membershiprequest;client=128.250.87.102;user=admin]
Before request [uri=/activity;client=128.250.87.102;user=admin]

В обоих случаях nginx включает заголовок x-forwarded-by:

IPv4

18:43:14.816532 IP 127.0.0.1.56540 > 127.0.0.1.8180:
........GET /activity HTTP/1.0
Host: test.local.org
X-Real-IP: 128.250.87.102
X-Forwarded-For: 128.250.87.102
X-Forwarded-Proto: https

IPv6

18:43:14.817830 IP6 ::1.37684 > ::1.8180: 
........GET /membershiprequest HTTP/1.0
Host: test.local.org
X-Real-IP: 128.250.87.102
X-Forwarded-For: 128.250.87.102
X-Forwarded-Proto: https
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...