NGINX. Блокировка пользователей по GeoIP — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 10: | Строка 10: | ||
− | Подключаем модуль в основном конфиге nginx.conf | + | Подключаем модуль и прописываем путь к файлу блокировками в основном конфиге nginx.conf |
load_module modules/ngx_http_geoip_module.so; | load_module modules/ngx_http_geoip_module.so; | ||
+ | include /etc/nginx/include.d/block.map; | ||
Версия 22:37, 3 марта 2022
Для ограничения доступа к сайту пользователей из определенных стран можно использовать модуль GeoIP. Делаем на примере Debian Buster
Ставим модуль
apt install nginx-module-geoip
Проверяем что он появился в /etc/nginx/modules
ngx_http_geoip_module.so
Подключаем модуль и прописываем путь к файлу блокировками в основном конфиге nginx.conf
load_module modules/ngx_http_geoip_module.so; include /etc/nginx/include.d/block.map;
Скачиваем базу GeoIP, кладём её в /usr/share/Geoip
В каталоге с конфигурационными файлами Nginx создаём файл include.d/block.map с нужными блокировками
В данном примере запрещаем доступ к сайту пользователям из Китая, Вьетнама и Тайваня
geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default yes; CN no; VN no; TW no; }
В данном примере доступ к сайту разрешён только пользователям из России и Украины
geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default no; RU yes; UA yes; }
В блоке server виртуального хоста описываем, что будет возвращать nginx, если совпадёт условие. Например, вернём 403
if ($allowed_country = no) { return 403; }
Перегружаем nginx и проверяем