BASH
#bash#nginx#geoip#rhel#centos#bitrixvm#diagnostics

Проверка модуля GeoIP и баз в Nginx (RHEL/CentOS)

Команды для проверки установки nginx-module-geoip, наличия .so, путей к .dat и синтаксиса конфига. Выполняются от root, без sudo (BitrixVM/VPS).

Как использовать

  1. Проверить наличие пакета и файла модуля.
  2. Проверить каталог с базами и права на .dat.
  3. Запустить nginx -t и при успехе — systemctl reload nginx.

Быстрая проверка, что модуль GeoIP установлен, базы на месте и конфиг применяется без ошибок. На BitrixVM и типичном VPS команды выполняют от root, sudo не нужен.

Установлен ли пакет и модуль

rpm -qa | grep -E '^nginx'
ls -la /usr/lib64/nginx/modules | grep geoip

Ожидаемо: пакет nginx-module-geoip и файл ngx_http_geoip_module.so. Если пакета нет: dnf install -y nginx-module-geoip (предполагается репозиторий nginx.org).

Есть ли базы .dat

ls -la /etc/nginx/geoip/

Должны быть как минимум GeoIP.dat (страна), при необходимости GeoLiteCity.dat. Права на чтение для пользователя nginx: chmod 0644 /etc/nginx/geoip/*.dat.

Синтаксис конфига и перезагрузка

nginx -t

При выводе syntax is ok и test is successful:

systemctl reload nginx

Проверка лога после запроса

Сделайте запрос к сайту и посмотрите последние строки access.log (если используете формат с GeoIP):

tail -n 5 /var/log/nginx/access.log

В строке должны быть поля вида country=RU (или другой код). Если country=-, модуль загружен, но база не сработала — проверьте пути и формат файлов (legacy .dat).

Подробнее: Как включить GeoIP в Nginx: переменные для логов и заголовков.