Связаться по:
vkarabedyants Telegram Viber

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Nginx — блокировка useragent

Не редка бывает необходимость не допустить на свой сайт, всякого рода ботов, роботов, вредителей, конкурентов и тому подобных посетителей.

Различают таких пользователей по юзерагенту.  Пример списка агентов blacklist

Далее в примере сократим и оставим только curl и wget

map $http_user_agent $bad_client {
  default	              1;
  "~*^curl"                   1;
  "~*^wget"                   1;
}

Данный лист можно сохранить по адресу:

/etc/nginx/conf.d/blacklist.conf

Далее для нужного location указываем следующее

location / {
if ($bad_client) { return 403; }

Таким образом все агенты попавшие под список получат 403 ответ — оступ запрещен.

Аналогично можно использовать и в таком виде

location @fallback { 
		if ($bad_client) { return 403; }

Проверим как это работает?

Пытаемся скачать с нашего сайта

wget http://test-site.local
--2017-06-08 21:17:02--  http://test-site.local/
Resolving test-site.local (test-site.local)... xxx.xxx.xx.x
Connecting to test-site.local (test-site.local)|xxx.xxx.xx.x|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2017-06-08 21:17:02 ERROR 403: Forbidden.

Видим, что блокировка работает.

Администрирование веб серверов, обращайтесь [email protected]

1 Response

  1. Перешёл вот на Нигикс и возникла необходимость в блокировке ботов, как это было через хтачесс.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.