UPD. Если вы столкнулись с большой посещаемостью ботами вашего сайта, а также с проблемами доступности и вы используете BitrixVM, то можно заблокировать ботов более эффективно на уровне Nginx. Рассмотрим в нашей статье "Блокировка сео ботов и других нелегетивных в nginx на примере Bitrix vm".
Клиент обратился к нам с проблемой медленной работы сайта и его периодической недоступностью. Так как это интернет-магазин, то он нёс большие убытки и от стабильной работы ресурса зависел весь его бизнес.
Клиент использует bitrixVM (centos) и решение CMS Битрикс + CRM Битрикс24 на борту.
В ходе диагностики выяснилось, что сайт имеет множество поддоменов и по стратегии SEO специалиста каждый поддомен заведен как отдельный сайт под нужный регион. Следовательно боты Яндекса расценивают их отдельными сайтами и даже достаточно мощный сервер не справляется с этой нагрузкой. Чтобы это увидеть можно посмотреть access.log httpd сервера bitrix vm.
Алгоритм решения проблемы
Будем использовать стандартный функционал битрикс и отправлять по документации Яндекса 429 ошибку. https://yandex.ru/support/webmaster/robot-workings/load-robots.html
- Для начала проверим, установлен ли модуль веб - аналитики.
Заходим в настройки => Настройки продукта => Модули
Если он установлен, приступаем к следующему шагу, если нет – устанавливаем. -
Переходим Настройка => Проактивная защита => Контроль активности
- Включаем защиту и переходим на вкладку параметры.
-
Нужно отредактировать шаблон, чтобы отправлять заблокированным роботам 429 код.
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();?> <?CHTTP::SetStatus("429 Too Many Requests");?> <html> <head> <title>429 Too Many Requests</title> </head> <body> <h1>429 Too Many Requests</h1> You have made too many requests per second. </body></html> <?die();?> </pre>
- Ограничения подбираем исходя из разумности создания хитов. То есть смотрим, сколько создает человек хитов за какой-то небольшой срез времени и ставим приблизительные ограничения. Или оставляем стандартные значения.
Посмотреть создание хитов можно в веб аналитике
Аналитика => Кто на сайте
- Если вы используете постоянный обмен данными между 1С, обязательно добавьте IP сервера, с которого отправляются пакеты в исключения, иначе он будет забанен.
Настройки => Настройка продукта => настройки модулей => Веб - аналитика - Можно добавить исключения как по IP, так и по группам пользователей. Как правило если решение для обмена типовое, то используется админ. группа.
Вот так была решена проблема назойливости ботов и сайт клиента перестал падать. Также этот приём спасёт от не сложных ddos-атак.
Остались вопросы? Пишите в комментариях.