GeoIP2#

Модуль GeoIP2 реализует поиск в базах MaxMind GeoIP2 по IP-адресу клиента (по умолчанию) или по значению определенной переменной. Поддерживает как IPv4, так и IPv6.

Установка#

Модуль включен в сборку.

Загрузка модуля#

Для работы с модулем необходимо загрузить его в контексте main{}:

load_module modules/ngx_http_geoip2_module.so;    # для использования в блоке http{}
load_module modules/ngx_stream_geoip2_module.so;  # для использования в контексте stream{}

Пример конфигурации#

http {
    geoip2 /var/lib/GeoIP/GeoLite2-Country.mmdb {
        auto_reload 1h;
        $geoip2_country_code default=RU source=$http_x_forwarded_for country iso_code;
        $geoip2_country_name source=$http_x_forwarded_for country names ru;
    }

    log_format with_geoip '$server_port $remote_addr - $remote_user [$time_local] "$request" '
                           '$status $body_bytes_sent "$http_referer" '
                           '"$http_user_agent" "$http_x_forwarded_for" "$http_host" '
                           'country="$geoip2_country_code"';

    map $geoip2_country_code $denied {
        PL "1";
        QA "1";
    }

    server {
        listen 80;
        root /usr/share/angie/html;
        index index.html index.htm;
        access_log /var/log/angie/geoip_access.log with_geoip;

        if ($denied) {
            return 403;
        }
    }
}

Дополнительная информация#

Подробная документация и исходный код доступны по ссылке: leev/ngx_http_geoip2_module