Как забанить ботов на сервере nginx
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Как забанить ботов на сервере nginx
Приветствую, количество гостей и там же новых ботов уже просто достало, подскажите как в nginx равилом забанить ботов по названию или по агенту, например вот бот Barkrowler . Заранее спасибо.
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Re: Как забанить ботов на сервере nginx
southklad, примерно как в моём примере. Я использую не только nginx для ловли ботов, но некоторых блокирую именно так, по user-agent:
Код: Выделить всё
http {
...
map $http_user_agent $bad_bots {
default 0;
~*(AhrefsBot|SemrushBot|MJ12bot|magpie|trendictionbot|DotBot|Riddler|AwarioRssBot|BLEXBot|Adsbot|MegaIndex|xpymep|Bytespider|Amazonbot|serpstatbot|ImagesiftBot|ClaudeBot|DataForSeoBot|GPTBot|OAI\-SearchBot|keys\-so\-bot) 1;
"~*(Mozilla/5\.0 \(X11; Ubuntu; Linux x86_64; rv:72\.0\) Gecko/20100101 Firefox/72\.0)" 1;
# и т.д.
}
server {
...
# вставить перед location
if ($bad_bots = 1) {
return 444;
}
}
}
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Re: Как забанить ботов на сервере nginx
Совсем забыл, что у меня вот так реализовано
Это вообще норм вариант?
Отправлено спустя 33 минуты 41 секунду:
Или вот так правильнее?
И как лучше, в основной конфиг сайта добавить или я создал файл block_bots.conf по пути /etc/nginx/ и там это же прописал
Код: Выделить всё
if ($http_user_agent ~ SputnikBot|Crowsnest|Barkrowler|GPTBot|DataForSeoBot|claudebot|meta-externalagent|Bytespider|VKRobotRB|OAI-SearchBot|SPAMDDOS|keys-so-bot|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|ltx71|SemrushBot|SMUrlExpander|xpymep|AhrefsBot) {
return 444;
}
Отправлено спустя 33 минуты 41 секунду:
Или вот так правильнее?
Код: Выделить всё
if ($http_user_agent ~* (SputnikBot|Crowsnest|Barkrowler|GPTBot|DataForSeoBot|claudebot|meta-externalagent|Bytespider|DotBot|VKRobotRB|MBCrawler|YaK|OAI-SearchBot|SPAMDDOS|keys-so-bot|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|ltx71|SemrushBot|SMUrlExpander|xpymep|AhrefsBot) ){
return 444;
}