geoip2_proxy_recursive
Директива 'geoip2_proxy_recursive' включает рекурсивные запросы данных GeoIP2 при использовании за прокси.
Описание
Директива 'geoip2_proxy_recursive' в модуле NGINX GeoIP2 настраивает, должна ли NGINX выполнять рекурсивные запросы данных GeoIP, когда запрос проходит через прокси. Эта функциональность жизненно важна в окружениях, где IP-адрес клиента пересылается через несколько уровней прокси, поскольку она позволяет получить точные данные геолокации, соответствующие исходному IP-адресу клиента, а не последнего прокси. Когда включено, NGINX анализирует HTTP-заголовок X-Forwarded-For, эффективно отслеживая исходный IP-адрес клиента.
Эта директива задается как флаг в конфигурации NGINX и может принимать два состояния: on (включено) или off (выключено). Если установлено on, NGINX будет рекурсивно разрешать IP-адрес через список пересланных IP, найденных в заголовке X-Forwarded-For, гарантируя, что географический поиск основан на корректном IP-адресе.
Для корректного использования этой директивы сервер должен быть настроен на доверие заголовкам от конкретных прокси, присутствующих в пути запроса. Неправильная конфигурация прокси может привести к неверным результатам или злоупотреблению директивой, так как недоверенные прокси могут отправлять некорректные или искажённые заголовки. Разработчикам следует удостовериться, какие прокси считаются доверенными в их архитектуре, чтобы обеспечить точность получения данных геолокации.
Пример конфига
http {
geoip2 /etc/maxmind-country.mmdb {
auto_reload 5m;
$geoip2_data_country_code default=US source=$remote_addr country iso_code;
}
geoip2_proxy_recursive on;
}Убедитесь, что заголовок X-Forwarded-For корректно устанавливается всеми upstream-прокси, иначе директива не будет работать правильно.
При включении этой директивы может потребоваться реализовать дополнительные меры безопасности, чтобы предотвратить подделку заголовков со стороны ненадёжных прокси.