На поддерживаемом мной веб-сайте с поддержкой 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;