baltun
Администратор
- Сообщения
- 12.282
- Реакции
- 3.082
- Баллы
- 1.833
Предполагается что у нас уже установлен Nginx и нам требуется только модуль, так же требуется установить GeoIP.
В нашем случае GeoIP не понадобился т.к у нас установлена панель ISPmanager.
Далее смотрим, что модуль установился:
В конце фала /etc/nginx/fastcgi_params добавляем параметры:
Подключаем модуль GeoIP в конфигурационном файле nginx:
Далее в секции http конфига nginx прописываем пути к скаченным БД (страны, города, провайдеры):
В этом же файле если требуется заблокировать определенные страны или страну пишем:
Если требуется дать доступ определенным странам или стране пишем так:
Теперь осталось добавить в конфиг виртуального хоста (секция server):
Перезапускаем Nginx:
После этого должна заработать блокировка по странам.
Код:
yum install -y nginx-module-geoip GeoIP GeoIP-data GeoIP-update
Далее смотрим, что модуль установился:
Код:
ls -l /usr/lib64/nginx/modules/
В конце фала /etc/nginx/fastcgi_params добавляем параметры:
Код:
# для стран:
fastcgi_param GEOIP_ADDR $remote_addr;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
# для городов:
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_REGION_NAME $geoip_region_name;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_AREA_CODE $geoip_area_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
# для провайдеров/организаций:
fastcgi_param GEOIP_ORGANIZATION $geoip_org;
Подключаем модуль GeoIP в конфигурационном файле nginx:
Код:
load_module "modules/ngx_http_geoip_module.so";
Далее в секции http конфига nginx прописываем пути к скаченным БД (страны, города, провайдеры):
Код:
geoip_country /usr/share/GeoIP/GeoLiteCountry.dat;
geoip_city /usr/share/GeoIP/GeoLiteCity.dat;
geoip_org /usr/share/GeoIP/GeoLiteASNum.dat;
В этом же файле если требуется заблокировать определенные страны или страну пишем:
Код:
map $geoip_country_code $allowed_country {
default yes;
CN no;
}
Если требуется дать доступ определенным странам или стране пишем так:
Код:
map $geoip_country_code $allowed_country {
default no;
RU yes;
UA yes;
BY yes;
KZ yes;
}
Теперь осталось добавить в конфиг виртуального хоста (секция server):
Код:
if ($allowed_country = no) {
return 404;
}
Перезапускаем Nginx:
Код:
systemctl restart nginx.service