nginx блокируем плохих ботов

Дата | 23.02.2019

nginx блокируем плохих ботов
Приступим реализации в nginx блокируем плохих ботов, снижаем нагрузку с сервера.
По логам вижу, что некоторые боты за долбали со своим негативным трафиком.
Кто парсит сайт, кто брутит пароль к админке, кто негативный трафик нагоняет.
Решил блокировать весь этот трафик на nginx.
В nginx.conf в секцию http добавляем наших, злополучных ботов которых мы будим блокировать.
Список не полный, если полный список, то он будит очень большим, это основные паразитирующие боты.

map $http_user_agent $bad_bot {
default 0;
~(?i)(Ahrefs|SputnikBot|spbot|DigExt|Sogou|MJ12|majestic12|80legs|SISTRIX|Semrush|Crowsnest|CCBot|TalkTalk|PaperLiBot|peerindex|ia_archiver|Slurp|Aport|NING|JS-Kit|rogerbot|BLEXBot|MJ12bot|Twiceler|Baiduspider|Java|CommentReader|Yeti|discobot|BTWebClient|Tagoobot|Ezooms|igdeSpyder|AhrefsBot|Teleport|Offline|DISCo|netvampire|Copier|HTTrack|WebCopier|WebCollector) 1;
}

Теперь добавляем активацию фильтрации ботов в нужном виртуал хосте.

# Запрещаем доступ по заголовкам User-Agent, от даем ботам код ответа 403.
if ($bad_bot = 1) { return 403; }

Вот и все.
Можно еще парсить лог и сравнивать, если часто бот ходит, то блокировать его на уровне маршрута.
Нагрузки практически ни какой будит.
Мини инструкция о том как в nginx блокируем плохих ботов.

nginx разделение логов.
nginx webp правило отображения картинок.
joomla nginx redirect.
nginx ssl letsencrypt редирект на другой домен.
nginx geoip фильтрация.

Категории: web Метки:

7 thoughts on “nginx блокируем плохих ботов

  1. Алексей

    после добавления в nginx.conf веб-сервер не запускается, говорит вот это
    invalid number of the map parameters

  2. Pingback: nginx geoip фильтрация - FRYAHA.RU

  3. Pingback: nginx 301 редирект - FRYAHA.RU

  4. Pingback: nginx webp правило отображения картинок - FRYAHA.RU

  5. Pingback: nginx ssl letsencrypt редирект на другой домен. - FRYAHA.RU

  6. Pingback: simpla nginx перевод редиректов - FRYAHA.RU

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *