geoip2_proxy

Директива `geoip2_proxy` указывает, какой IP-адрес использовать для определения GeoIP на основе IP-заголовка прокси.

Синтаксисgeoip2_proxy ;
По умолчаниюnone
Контекстhttp
Аргументы1

Описание

Директива geoip2_proxy позволяет пользователю настроить NGINX так, чтобы он читал IP-адрес клиента, который был переслан прокси или балансировщиком нагрузки. Это особенно полезно в конфигурациях, где запросы обрабатывает прокси‑сервер, использующий определённые заголовки (например, X-Forwarded-For) для передачи исходного IP-адреса клиента на бэкенд. Директива принимает один аргумент, который должен указывать на заголовок, содержащий информацию об IP, что позволяет NGINX точно получать географические данные из базы GeoIP2 на основе исходного IP клиента.

Эта директива работает совместно с модулем GeoIP2, который создаёт переменные для данных о стране и городе, получаемых из геобаз MaxMind. Настроив geoip2_proxy, вы обеспечиваете корректный анализ запросов на основании реального IP клиента, а не IP прокси. Если директива не задана, NGINX обычно будет анализировать проксированный запрос, используя непосредственный IP, что может привести к неверным данным геолокации для пользователей за прокси.

Пример конфига

http {
    geoip2 /etc/maxmind-country.mmdb {
        geoip2_proxy $http_x_forwarded_for;
        $geoip2_data_country_code default=US source=$remote_addr country iso_code;
    }
}

Убедитесь, что прокси правильно устанавливает указанный заголовок; в противном случае геолокация может не сработать или вернуть неверные результаты.

Проверьте, что форматы адресации IPv4 и IPv6 обрабатываются корректно, поскольку неправильные настройки могут привести к непредвиденным результатам.

Переконфигурируйте NGINX так, чтобы он игнорировал некоторые внутренние заголовки, чтобы предотвратить их утечку при возможной подделке. Если это не настроено должным образом, злоумышленники могут передать произвольный заголовок X-Forwarded-For.

← Ко всем директивам