geoip_proxy
Директива `geoip_proxy` используется для настройки модуля GeoIP для определения географического расположения IP-адресов на основе proxy protocol. — NGINX HTTP Core
Описание
Директива `geoip_proxy` задаёт способ для NGINX использовать proxy protocol, чтобы получить исходный IP-адрес клиента, что позволяет повысить точность определения географического положения с помощью баз GeoIP. Это особенно полезно в средах, где запросы пересылаются от одного прокси-сервера к другому, поскольку адресация в запросе может не отражать реальное географическое местоположение клиента. При настройке NGINX будет читать исходный IP-адрес клиента из указанного заголовка, а не напрямую из клиентского соединения. Директива принимает один аргумент — имя заголовка, который следует проверять; обычно он содержит исходный адрес клиента (например, `X-Real-IP`). При использовании этой директивы крайне важно убедиться, что вышестоящие прокси корректно заполняют указанный заголовок допустимыми IP-адресами для точных запросов к базам GeoIP. Некорректная настройка может привести к записи неправильных географических данных в логах или к ошибкам при управлении доступом. Выполнение директивы происходит в контексте HTTP, что позволяет применять её глобально в server-блоках или в отдельных location-блоках. Заголовки корректно обрабатываются при входящих запросах, поэтому важно поддерживать единообразную конфигурацию на всех промежуточных прокси в развертывании.
Пример конфига
http {
geoip_proxy X-Forwarded-For;
}Убедитесь, что ваш upstream-прокси включает правильные заголовки, иначе NGINX может определить неверные IP-адреса.
Неправильная конфигурация может привести к уязвимостям в безопасности, поскольку некорректная обработка IP-адресов может подвергнуть ваше приложение атакам подмены.
Эта директива действительна только в том случае, если модуль GeoIP скомпилирован и включён в NGINX.