|
|
(не показаны 2 промежуточные версии этого же участника) |
Строка 1: |
Строка 1: |
− | Для ограничения доступа к сайту пользователей из определенных стран можно использовать модуль GeoIP. Делаем на примере Debian Buster
| |
| | | |
− |
| |
− | Ставим модуль
| |
− | apt-get install nginx-module-geoip
| |
− |
| |
− |
| |
− | Проверяем что он появился в /etc/nginx/modules
| |
− | ngx_http_geoip_module.so
| |
− |
| |
− |
| |
− | Подключаем модуль в основном конфиге nginx.conf
| |
− | load_module modules/ngx_http_geoip_module.so;
| |
− |
| |
− |
| |
− | Скачиваем базу 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 и проверяем
| |