Описание википедии заголовка HTTP X-Forwarded-For
:
X-Forwarded-For: client1, proxy1, proxy2, ...
Документация nginx для директивы real_ip_header
гласит:
Эта директива устанавливает имя заголовка, используемого для передачи замещающего IP-адреса.
В случае X-Forwarded-For этот модуль использует последний ip в заголовке X-Forwarded-For для замены. [Акцент мой]
Эти два описания противоречат друг другу. В нашем сценарии X-Forwarded-For
заголовок в точности соответствует описанию - «реальный» IP-адрес клиента является самой левой записью. Аналогично, поведение nginx состоит в том, чтобы использовать самое правильное значение, которое, очевидно, является лишь одним из наших прокси-серверов.
Насколько я понимаю X-Real-IP
, он должен использоваться для определения фактического IP-адреса клиента, а не прокси-сервера. Я что-то упустил, или это ошибка в nginx?
И, кроме того, есть ли у кого-нибудь какие-либо предложения о том, как сделать так, чтобы X-Real-IP
заголовок отображал крайнее левое значение, как указано в определении X-Forwarded-For
?