geoip2
Директива `geoip2` позволяет использовать базы данных GeoIP2 для создания переменных на основе геолокации по IP-адресу клиента.
Описание
Директива geoip2 в модуле GeoIP2 для NGINX позволяет настраивать способ доступа и использования данных геолокации из баз данных GeoIP2 от MaxMind. Она поддерживает как IPv4, так и IPv6, позволяя определять переменные, соответствующие конкретным географическим данным, таким как код страны или название города, на основе IP-адреса клиента. Кроме того, директива позволяет автоматически перезагружать базу данных через заданные интервалы, что обеспечивает отражение изменений в исходных данных без необходимости перезапуска NGINX. \n\nПараметры внутри блока geoip2 могут указывать путь к файлу базы данных GeoIP2, опции для получения метаданных и определения переменных для географических данных. Переменные $geoip2_metadata_country_build и аналогичные предоставляют доступ к метаданным, таким как время сборки базы данных, тогда как переменные для получения данных могут включать значения по умолчанию на случай отсутствия данных или переменную-источник, указывающую альтернативный IP для запроса. Такая гибкость позволяет директиве адаптироваться к различным требованиям конфигурации и обеспечивает эффективную обработку геолокации в контекстах HTTP и stream. \n\nОшибки могут возникнуть, если путь к файлу базы данных указан неверно или если требуемые библиотеки MaxMind не установлены. Крайне важно проверить конфигурацию и убедиться, что база данных имеет правильный формат, чтобы избежать проблем во время выполнения.
Пример конфига
http {
geoip2 /etc/maxmind-country.mmdb {
auto_reload 5m;
$geoip2_metadata_country_build metadata build_epoch;
$geoip2_data_country_code default=US source=$variable_with_ip country iso_code;
$geoip2_data_country_name country names en;
}
}Убедитесь, что путь к файлу базы данных MaxMind указан правильно, чтобы избежать ошибок.
Если база данных имеет неправильный формат, получение переменных не удастся.
Автоперезагрузка отключена по умолчанию; включите её явно, если это необходимо.