Nginx GeoIP: загрузка модуля и пути к базам .dat
Подключение ngx_http_geoip_module через load_module и указание путей к GeoIP.dat и GeoLiteCity.dat в http {}. Для BitrixVM и VPS под root.
Как использовать
- Добавить load_module в самое начало nginx.conf (до блока events и http).
- В блок http {} добавить geoip_country и при необходимости geoip_city с путями к .dat.
- Проверить: nginx -t, затем systemctl reload nginx.
Подключение модуля GeoIP (legacy) в Nginx и указание путей к базам MaxMind. Директива load_module допускается только в основном контексте — в начале файла, до events {} и http {}. Источник: документация модуля ngx_http_geoip_module.
Загрузка модуля (начало nginx.conf)
В самом начале /etc/nginx/nginx.conf добавьте одну строку:
load_module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so";
events {
worker_connections 1024;
}
http {
# ...
}
- На RHEL/CentOS путь к модулю обычно
/usr/lib64/nginx/modules/. Если Nginx ставили из пакетов nginx.org — модуль ставится пакетомnginx-module-geoip. - Нельзя размещать
load_moduleвнутриhttp {}или в include-файлах, которые подключаются уже внутриhttp {}.
Пути к базам внутри http {}
Внутри блока http {} укажите файлы баз legacy-формата MaxMind:
http {
geoip_country /etc/nginx/geoip/GeoIP.dat;
geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
# остальная конфигурация: log_format, server { ... }
}
geoip_country— обязательный минимум; появляются переменные$geoip_country_code,$geoip_country_name.geoip_city— опционально; добавляются$geoip_city,$geoip_latitude,$geoip_longitudeи др.- Имена файлов могут быть другими, главное — существующие пути и права на чтение для пользователя, от которого запущен nginx.
Каталог для баз
Создать каталог и положить туда .dat (от root, без sudo на BitrixVM):
mkdir -p /etc/nginx/geoip
chmod 0755 /etc/nginx/geoip
# после копирования .dat:
chmod 0644 /etc/nginx/geoip/*.dat
Подробнее: Как включить GeoIP в Nginx: переменные для логов и заголовков.