Rate this post

Не редка бывает необходимость не допустить на свой сайт, всякого рода ботов, роботов, вредителей, конкурентов и тому подобных посетителей.nnРазличают таких пользователей по юзерагенту.  Пример списка агентов blacklistnnДалее в примере сократим и оставим только curl и wgetn

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

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

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

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

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

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

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

Проверим как это работает?nnПытаемся скачать с нашего сайтаn

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

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

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