Моя среда имеет пользовательские запросы, проходящие через несколько систем:
[Клиент] -> [ELB] ---> [nginx] -> [web]
(ELB = AWS Elastic Load Balancer)
Благодаря этому ответу , я Nginx определения и передачи правильный IP - адрес клиента на потоковые сервера (Web) с X-Forwarded-For
и X-Real_IP
заголовками. Соответствующий конфиг nginx:
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
Моя проблема в том, что модуль Real IP в nginx заменяет существующую $remote_addr
переменную результатом своих X-Forwarded-For
вычислений. Это дает мне исходный IP-адрес клиента, но я теряю IP-адрес системы, которая фактически отправила запрос прокси-серверу (т. Е. ELB).
В целом, наличие IP-адреса клиента для меня важнее, но я бы хотел иметь возможность регистрировать всю цепочку запросов, чтобы понять (и отладить), как проходит трафик. В настоящее время я могу только зарегистрировать IP-адрес клиента nginx, собственный IP-адрес и IP-адрес вышестоящего сервера. Я также хотел бы иметь возможность регистрировать IP ELB.
Я вижу, X-Istence задал тот же вопрос в 2013 году, но без особой удачи. С тех пор что-нибудь изменилось или улучшилось?
$realip_remote_addr
. Работает прекрасно. На самом деле пытался заставить proxy_protocol работать и наткнулся на примечания к