Как забанить ботов на сервере nginx
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
southklad
- phpBB 3.1.0 RC4
- Сообщения: 3417
- Стаж: 14 лет 1 месяц
- Благодарил (а): 702 раза
- Поблагодарили: 172 раза
Как забанить ботов на сервере nginx
Приветствую, количество гостей и там же новых ботов уже просто достало, подскажите как в nginx равилом забанить ботов по названию или по агенту, например вот бот Barkrowler . Заранее спасибо.
-
Siava
- Поддержка

- Сообщения: 5510
- Стаж: 21 год 1 месяц
- Откуда: Питер
- Благодарил (а): 185 раз
- Поблагодарили: 769 раз
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
-
southklad
- phpBB 3.1.0 RC4
- Сообщения: 3417
- Стаж: 14 лет 1 месяц
- Благодарил (а): 702 раза
- Поблагодарили: 172 раза
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;
}-
Kuskow
- phpBB 2.0.1
- Сообщения: 250
- Стаж: 9 лет 9 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 19 раз
- Поблагодарили: 18 раз
Re: Как забанить ботов на сервере nginx
А зачем банить ChatGPT? Им сейчас очень многие пользуются, и будет хорошо, если информация с форума, которой когда-то поделились живые и явно компетентные люди, будет учтена в знаниях, и на её основе будут делаться выводы.
-
Kuskow
- phpBB 2.0.1
- Сообщения: 250
- Стаж: 9 лет 9 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 19 раз
- Поблагодарили: 18 раз
Re: Как забанить ботов на сервере nginx
И ещё, кажется, забыли из активных: Petal, Python, Twitter, Facebook, Perplexity, DuckDuckGo, Apple, Sogou, FAST-WebCrawler, msnbot, Ask Jeeves.
Отправлено спустя 26 минут 9 секунд:
Затем выведенный список копируем туда же в вопросы к Google-ИИ, получаем ответ:
Вот компактный анализ вашего лога (на основе 50 000 запросов).
Для удобства я сгруппировал «ботов из будущего» (Chrome 140+) и явных ИИ-агентов.
Итоги активности (Топ-50)
Можно выводить статистику по процентам прямо в SSH-терминале:
Так как Amazon и ChatGPT можно обрезать в robots.txt, то лезть в NGINX нет смысла, я считаю.
Отправлено спустя 26 минут 9 секунд:
Заходим в Google в режиме ИИ, вставляем первый вариант, получаем ответ, вставляем второй вариант - сразу говорит, что так, что не так, на что обратить внимание, как улучшить, ускорить, сократить, кого вырезать, кого добавить. Ну просто прелесть какая-то. Тут же предлагаю выполнить консольную команду, которая выдаст самых загружающих ботов (путь к log-файлу будет другой - он предложит варианты, если команда не сработает):
Код: Выделить всё
tail -n 50000 /var/log/nginx/domains/navimba.com.log | awk -F\" '{print $6}' | sort | uniq -c | sort -nr | head -n 50Вот компактный анализ вашего лога (на основе 50 000 запросов).
Для удобства я сгруппировал «ботов из будущего» (Chrome 140+) и явных ИИ-агентов.
Итоги активности (Топ-50)
Код: Выделить всё
Процент Название / Тип агента Примечание
19.5% GPTBot (OpenAI) ИИ-краулер
4.7% Amazonbot Сбор данных для Amazon
3.6% YandexBot Поисковик
3.6% trendictionbot Маркетинговый агрегатор
2.2% python-requests Скрипты/Парсеры (не браузер)
2.0% Chrome 10.0 (Legacy) Древний бот (версии 15 лет)
1.6% PetalBot (Huawei) Поисковик Huawei
1.1% ClaudeBot (Anthropic) ИИ-краулер
0.9% OAI-SearchBot (OpenAI) Поисковый ИИ
0.8% bingbot Поиск Microsoft
0.7% DataForSeoBot SEO-парсер
0.6% DotBot / MJ12bot SEO-аналитика
0.5% meta-externalagent ИИ-бот Facebook/Meta
0.5% Googlebot Поисковик (единственный полезный)
32.8% Прочие Chrome/Safari Смесь реальных людей и мелких ботовМожно выводить статистику по процентам прямо в SSH-терминале:
Код: Выделить всё
LOG_FILE="/var/log/nginx/domains/navimba.com.log"; \
TOTAL=$(tail -n 50000 $LOG_FILE | wc -l); \
tail -n 50000 $LOG_FILE | awk -F\" '{print $6}' | sort | uniq -c | sort -nr | head -n 20 | \
awk -v total=$TOTAL '{ printf "%5.1f%% | %s\n", ($1/total)*100, substr($0, index($0,$2)) }'
Так как Amazon и ChatGPT можно обрезать в robots.txt, то лезть в NGINX нет смысла, я считаю.
-
MasterX
- phpBB 1.4.4
- Сообщения: 134
- Стаж: 5 лет 11 месяцев
- Благодарил (а): 22 раза
- Поблагодарили: 13 раз
Re: Как забанить ботов на сервере nginx
В свое время добавлял в .htaccess
# Блокировка GigaExplorator
RewriteCond %{HTTP_USER_AGENT} GigaExplorator [NC]
RewriteRule ^ - [F,L]
# Блокировка SERanking Backlinks Bot
RewriteCond %{HTTP_USER_AGENT} SERankingBacklinksBot [NC]
RewriteRule ^ - [F,L]
##############################
# !!! БАН FIREFOX 72 !!!
##############################
RewriteCond %{HTTP_USER_AGENT} Firefox/72\. [NC]
RewriteRule ^ - [F,L]
##############################
# 0a) Блокировка известных скраперских подсетей
##############################
RewriteCond %{REMOTE_ADDR} ^5\.75\. [OR]
RewriteCond %{REMOTE_ADDR} ^5\.161\. [OR]
RewriteCond %{REMOTE_ADDR} ^65\.109\. [OR]
RewriteCond %{REMOTE_ADDR} ^116\.202\. [OR]
RewriteCond %{REMOTE_ADDR} ^128\.140\. [OR]
RewriteCond %{REMOTE_ADDR} ^135\.181\. [OR]
RewriteCond %{REMOTE_ADDR} ^136\.243\. [OR]
RewriteCond %{REMOTE_ADDR} ^148\.251\. [OR]
RewriteCond %{REMOTE_ADDR} ^157\.90\. [OR]
RewriteCond %{REMOTE_ADDR} ^162\.55\. [OR]
RewriteCond %{REMOTE_ADDR} ^167\.235\. [OR]
RewriteCond %{REMOTE_ADDR} ^168\.119\. [OR]
RewriteCond %{REMOTE_ADDR} ^176\.9\. [OR]
RewriteCond %{REMOTE_ADDR} ^178\.63\. [OR]
RewriteCond %{REMOTE_ADDR} ^188\.40\. [OR]
RewriteCond %{REMOTE_ADDR} ^193\.43\.108\. [OR]
RewriteCond %{REMOTE_ADDR} ^195\.201\. [OR]
RewriteCond %{REMOTE_ADDR} ^198\.244\.200\. [OR]
# Alibaba Cloud / Aliyun (массовые псевдогости)
RewriteCond %{REMOTE_ADDR} ^8\.160\.
RewriteRule ^ - [F,L]
##############################
# 1) Белый список полезных ботов
##############################
RewriteCond %{HTTP_USER_AGENT} (Googlebot|YandexBot|YandexMetrika|YaDirectFetcher|AdsBot|Mediapartners-Google|bingbot|Slurp|DuckDuckBot|Applebot) [NC]
RewriteRule ^ - [L]
##############################
# 2) Жёсткая защита от скраперов
##############################
RewriteCond %{HTTP_USER_AGENT} (curl|python|wget|libwww|java|perl|php|axios|requests|scrapy|httpclient|go-http-client|node-fetch) [NC]
RewriteRule ^ - [F,L]
##############################
# 3) Блокировка старых Chrome (<=101)
##############################
RewriteCond %{HTTP_USER_AGENT} Chrome/(?:[0-9]|[1-9][0-9]|100|101)\. [NC]
RewriteRule ^ - [F,L]
Помогало.
Советую поюзать ИИ, он актуализирует данную инфу.
# Блокировка GigaExplorator
RewriteCond %{HTTP_USER_AGENT} GigaExplorator [NC]
RewriteRule ^ - [F,L]
# Блокировка SERanking Backlinks Bot
RewriteCond %{HTTP_USER_AGENT} SERankingBacklinksBot [NC]
RewriteRule ^ - [F,L]
##############################
# !!! БАН FIREFOX 72 !!!
##############################
RewriteCond %{HTTP_USER_AGENT} Firefox/72\. [NC]
RewriteRule ^ - [F,L]
##############################
# 0a) Блокировка известных скраперских подсетей
##############################
RewriteCond %{REMOTE_ADDR} ^5\.75\. [OR]
RewriteCond %{REMOTE_ADDR} ^5\.161\. [OR]
RewriteCond %{REMOTE_ADDR} ^65\.109\. [OR]
RewriteCond %{REMOTE_ADDR} ^116\.202\. [OR]
RewriteCond %{REMOTE_ADDR} ^128\.140\. [OR]
RewriteCond %{REMOTE_ADDR} ^135\.181\. [OR]
RewriteCond %{REMOTE_ADDR} ^136\.243\. [OR]
RewriteCond %{REMOTE_ADDR} ^148\.251\. [OR]
RewriteCond %{REMOTE_ADDR} ^157\.90\. [OR]
RewriteCond %{REMOTE_ADDR} ^162\.55\. [OR]
RewriteCond %{REMOTE_ADDR} ^167\.235\. [OR]
RewriteCond %{REMOTE_ADDR} ^168\.119\. [OR]
RewriteCond %{REMOTE_ADDR} ^176\.9\. [OR]
RewriteCond %{REMOTE_ADDR} ^178\.63\. [OR]
RewriteCond %{REMOTE_ADDR} ^188\.40\. [OR]
RewriteCond %{REMOTE_ADDR} ^193\.43\.108\. [OR]
RewriteCond %{REMOTE_ADDR} ^195\.201\. [OR]
RewriteCond %{REMOTE_ADDR} ^198\.244\.200\. [OR]
# Alibaba Cloud / Aliyun (массовые псевдогости)
RewriteCond %{REMOTE_ADDR} ^8\.160\.
RewriteRule ^ - [F,L]
##############################
# 1) Белый список полезных ботов
##############################
RewriteCond %{HTTP_USER_AGENT} (Googlebot|YandexBot|YandexMetrika|YaDirectFetcher|AdsBot|Mediapartners-Google|bingbot|Slurp|DuckDuckBot|Applebot) [NC]
RewriteRule ^ - [L]
##############################
# 2) Жёсткая защита от скраперов
##############################
RewriteCond %{HTTP_USER_AGENT} (curl|python|wget|libwww|java|perl|php|axios|requests|scrapy|httpclient|go-http-client|node-fetch) [NC]
RewriteRule ^ - [F,L]
##############################
# 3) Блокировка старых Chrome (<=101)
##############################
RewriteCond %{HTTP_USER_AGENT} Chrome/(?:[0-9]|[1-9][0-9]|100|101)\. [NC]
RewriteRule ^ - [F,L]
Помогало.
Советую поюзать ИИ, он актуализирует данную инфу.

