Мой сервер nginx находится за балансировщиком обратной прокси-загрузки. Как я могу показать правильный IP-адрес клиента в файлах журнала nginx, когда nginx находится за балансировщиком загрузки?
Если вы используете nginx за обратными прокси-серверами, балансировщиком загрузки и интерфейсом HTTPS, например HAProxy / Pound, вам может быть сложно зарегистрировать или получить реальный IP-адрес.
Как зарегистрировать IP-адрес реального пользователя вместо прокси-сервера?
Вам нужно использовать модуль ngx_http_realip_module . Он используется для изменения адреса клиента и дополнительного порта на тот, который был отправлен в указанных полях хедера. Отредактируйте файл nginx.conf или default.conf :
$ sudo vi /etc/nginx/conf.d/default.conf
И установите следующие две директивы:
set_real_ip_from 192.168.1.4; real_ip_header X-Forwarded-For;
Сохраните и закройте файл.
Где,
- set_real_ip_from 192.168.1.4; Установите доверенные адреса, которые, как известно, отправляют правильные адреса замены. 192.168.1.4 — это мой балансировщик нагрузки или обратный прокси-сервер.
- real_ip_header X-Forwarded-For; Вам нужно определить поле заголовка запроса, значение которого будет использоваться для замены адреса клиента. X-Real-IP и X-Forwarded-For содержат реальный IP-адрес клиента. Этот заголовок обычно устанавливается в вашем балансировщике нагрузки или IP-адресе клиента.
Вы должны перезапустить или перезагрузить ваш nginx сервер:
$ sudo service nginx restart
ИЛИ
$ systemctl reload nginx
Проверка
Перед тем как выставить set_real_ip_from в nginx.conf :
$ sudo tail -f /var/log/nginx/access.log
Пример возможных выводов данных:
192.168.1.4 - - [18/Jan/2017:20:34:02 +0000] "GET / HTTP/1.0" 200 700 "https://theos.in/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
После того как вы выставите set_real_ip_from в nginx.conf :
$ sudo tail -f /var/log/nginx/access.log
204.55.22.11 - - [18/Jan/2017:20:34:02 +0000] "GET / HTTP/1.0" 200 700 "https://theos.in/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно: