Назад | Перейти на главную страницу

Настройка nginx для регистрации исходного IP-адреса запрашивающего (вместо IP-адреса прямого прокси)

На поддерживаемом мной веб-сайте с поддержкой nginx некоторые посетители находятся за определенным прокси-сервером. Поскольку запросы проходят через прокси-серверы, IP-адрес HTTP-запроса в этих случаях всегда исходит от прокси-серверов, а не от исходного запрашивающего.

Однако прокси-сервер обеспечивает включение исходного IP-адреса запрашивающей стороны в отдельное поле заголовка HTTP под названием X-IORG-FBS-UIP. Его также можно найти в X-FORWARDED-FOR.

В журналах доступа nginx я заметил, что для всех этих пользователей отображается IP-адрес прокси, а не реальный IP-адрес. Как я могу настроить nginx так, чтобы исходный IP-адрес запрашивающего регистрировался nginx, а не прокси-сервером? Наглядный пример был бы отличным; заранее спасибо!


p.s. у меня nginx v 1.4.6

Это делается с помощью set_real_ip_from обновить $ remote_addr переменная на основе настраиваемого заголовка. Например, /etc/nginx/conf.d/proxies_acl.conf можно создать следующим образом, чтобы установить переменную IP клиента на основе X-IORG-FBS-UIP заголовок для запросов, проксированных 1.2.3.0/22 и 23.22.20.0/22:

set_real_ip_from 1.2.3.0/22;
set_real_ip_from 23.22.20.0/22;
real_ip_header X-IORG-FBS-UIP;