NGINX. Блокировка пользователей по GeoIP — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Полностью удалено содержимое страницы)
(Метка: очистка)
 
Строка 1: Строка 1:
−
Для ограничения доступа к сайту пользователей из определенных стран можно использовать модуль 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 и проверяем
 

Текущая версия на 20:39, 2 мая 2023