GeoIP2#
Модуль GeoIP2 реализует поиск в базах MaxMind GeoIP2 по IP-адресу клиента (по
умолчанию) или по значению определенной переменной. Поддерживает как IPv4, так и
IPv6. Модуль включен в сборку. Для работы с модулем необходимо загрузить его в контексте Подробная документация и исходный код доступны по ссылке:
leev/ngx_http_geoip2_moduleУстановка#
Загрузка модуля#
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;
}
}
}
Дополнительная информация#