Можно ли заставить Nginx HttpGeoIPModule использовать IP-адрес X_Forwarded, отправляемый через HAProxy? В настоящее время он просто использует неправильный IP-адрес сервера, но не уверен, как я могу заставить Nginx использовать IP-адрес X_Forwarded.
Любые идеи?
Другой вариант - запустить HA Proxy в прозрачном режиме, тогда все IP-адреса будут отображаться правильно. Обычно для того, чтобы заставить его работать, требуется небольшая обработка IP-таблиц, но это того стоит.
Ответ Самира правильный.
Вам нужно будет настроить и скомпилировать Nginx с параметром --with-http_realip_module.
Затем установите следующую опцию в конфигурации Nginx:
set_real_ip_from 1.2.3.4;
real_ip_header X-Forwarded-For;
Где 1.2.3.4 - IP-адрес HAProxy
В HAProxy вам понадобятся следующие параметры:
option httpclose
option forwardfor
Я нашел этот сайт полезным: http://www.somerorbay.com/vps-and-dedicated/nginx-behind-haproxy-x-forwarded-for-getting-real-client-ip
Вы пробовали использовать RealIPModule и установить для X-Real-IP значение X-Forwarded-For?
Вы должны передать --with-http_realip_module во время компиляции, чтобы построить модуль, потому что он не создается по умолчанию.