====== Nginx и блокировка пользователей ======
Иногда возникает необходимость быстро заблокировать каких-то пользователей средствами веб-сервера по некоторому признаку: User Agent, IP-адрес и т.д.
Поможет вот такая штука.
Создаем файл /etc/nginx/block.conf
# Block unwanted users
# Blocking by User Agent (блокировка по юзер-агенту)
# Хорошо подходит для блокировки роботов
if ($http_user_agent ~ (ZmEu|libwww-perl|wget) ) {
return 403;
}
# Blocking by IP address (блокировка по ИП-адресу)
deny 88.88.88.88;
# Blocking by IP subnet (блокировка подсети)
deny 192.168.10.0/24;
# Blocking by Referer (блокировка по рефереру, т.е. адресу откуда пользователь перешел на мой сайт)
if ($http_referer ~* (viagra|cialis|levitra) ) {
return 403;
}
# Blocking by GeoIP (блокировка по географическому признаку)
geoip_country /etc/nginx/GeoIP.dat;
if ($geoip_country_code ~ (BR|CN|KR|RU) ) {
return 403;
}
и подключаем его в нужной секции server { при помощи команды
include /etc/nginx/block.conf
Внимание: если есть желание использовать GeoIP - удостоверьтесь что Nginx собран с этим модулем!
{{tag>nginx защита user_agent}}