Привет! Как использовать geoip модуль?
Добрый день.
Обратите внимание, модуль geoip
работает с базами MaxMind.
Модуль включён в пакет Angie динамическим, для использования нужно его подключить в файле /etc/angie/angie.conf
директивой load_module
:
user angie;
worker_processes auto;
worker_rlimit_nofile 65536;
load_module modules/ngx_http_geoip_module.so;
...
Модуль создаёт переменные, значения которых зависят от IP-адреса клиента, используя готовые базы данных GeoIP
от MaxMind. Базы GeoIP2
с модулем geoip
не работают.
Пример конфигурации:
http {
geoip_country GeoIP.dat;
geoip_city GeoLiteCity.dat;
...
Переменные могут быть использованы для ограничения доступа к сайту, например:
map $geoip_country_code $allowed_country {
default no;
RU yes;
KZ yes;
}
Доступные переменные:
$geoip_country_code — двухбуквенный код страны, например, “RU”, “US”.
$geoip_country_code3 — трёхбуквенный код страны, например, “RUS”, “USA”.
$geoip_country_name — название страны, например, “Russian Federation”, “United States”.
$geoip_area_code — телефонный код области (только для США).
$geoip_city_continent_code — двухбуквенный код континента, например, “EU”, “NA”.
$geoip_city_country_code — двухбуквенный код страны, например, “RU”, “US”.
$geoip_city_country_code3 — трёхбуквенный код страны, например, “RUS”, “USA”.
$geoip_city_country_name — название страны, например, “Russian Federation”, “United States”.
$geoip_dma_code — DMA-код региона в США (также известный как “код агломерации”), согласно геотаргетингу Google AdWords API.
$geoip_latitude — широта.
$geoip_longitude — долгота.
$geoip_region — двухсимвольный код региона страны (область, край, штат, провинция, федеральная земля и тому подобное), например, “48”, “DC”.
$geoip_region_name — название региона страны (область, край, штат, провинция, федеральная земля и тому подобное), например, “Moscow City”, “District of Columbia”.
$geoip_city — название города, например, “Moscow”, “Washington”.
$geoip_postal_code — почтовый индекс.
$geoip_org — название организации, например, “The University of Melbourne”.