====== 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}}