заблокировать доступ к сайту пользователям, находящимся в определенных странах. nginx + debian + GeoIP

1. Проверяем, была ли подключена поддержка HttpGeoipModule
nginx -V | grep http_geoip_module

Если все ок - идем дальше
	
sudo apt-get install geoip-database libgeoip1

sudo mv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_bak
cd /usr/share/GeoIP/
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
sudo gunzip GeoIP.dat.gz
sudo nano /etc/nginx/nginx.conf

Добавить в блок http {} перед инклюдами
 
Вариант 1 ( разрешенео всем, кроме китая)

geoip_country /usr/share/GeoIP/GeoIP.dat;
 map $geoip_country_code $allowed_country {
        default yes;
        CN no;
}

Вариант 2 ( запрещено всем, кроме России и Украины)

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
	default no;
        RU yes;
        UA yes;
}


Изменение в секции server {} ( Возвращаем 404 ошибку) 

if ($allowed_country = no) {
            return 404;
}


	
sudo /etc/init.d/nginx reload

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.