Однажды на Вашу почту может прийти письмо от хостинг-провайдера примерно следующего содержания:
При покупке хостинга для своего сайта нужно обращать внимание на количество ресурсов, которое выделяется для определенного тарифного плана: дисковое пространство, максимальное количество сайтов и БД, панель управления сервером. В добавок к этому для каждого тарифа выделяется определенный лимит на использование CPU, который изначально невозможно просчитать под нужды желаемого хостинга.
Причины нагрузок на CPU сервера
Причин может быть внушительное количество, остановимся на самых очевидных:
- Рост сайта за счет высокой посещаемости (требуется включение кэширования файлов в настройках CMS или смена тарифного плана на более мощный)
- Нагрузка на сервер баз данных MySQL (требуется отключение/удаление ненужных расширений CMS и отдельных скриптов или смена тарифного плана на более мощный)
- Слабая DDoS атака, пожирающая ресурсы сервера (требуется защита от такого вида атак - должна стоять по умолчанию от хостинга (дополнительно установите расширение JHackGuard))
- Вирусы на сайте (требуется антивирус (некоторые хостинг-провайдеры имеют встроенные антивирусы, например Reg.ru))
- Спам-боты, боты различных сервисов (требуется ручная блокировка ботов, а также их IP-адресов)
Блокировку спам-ботов и их IP мы рассмотрим более подробно в конце данной статьи.
Как определить причину нагрузок на CPU сервера
В панели управления хостингом должна содержаться информация о максимальной среднесуточной нагрузке на центральный процессор в процентах и подробная ежедневная статистика, которая позволит посмотреть динамику нагрузок за последние несколько дней и выявить причину нагрузок. Если у Вас появились затруднения с поиском данной статистики, то обратитесь в службу поддержки хостинг-провайдера.
Общий перечень действий при больших нагрузках на CPU сервера
Первым делом нужно просканировать файлы Вашего сайта на наличие вредоносного кода, который может создавать дыры в системе, а также дополнительную нагрузку на ресурсы сервера. Используем антивирус своего хостинг-провайдера или, например, бесплатный антивирус "Manul" от команды Яндекс.
Следующим действием будут работы по улучшению защиты сайта: скрываем страницу доступа к административной панели сайта за счет плагина AskMyAdmin и ставим защиту от хакерских SQl атак при помощи компонента JHackGuard. Подробнее об этом можно прочитать в данной статье.
Включаем встроенное прогрессивное кэширование сайта через настройки CMS. Подробнее об этом можно почитать в данной статье.
Следующим этапом действий будет блокировка спам-ботов и ботов различных сервисов. Рассмотрим его более подробно!
Таймаут для поисковых ботов и блокировка спам-ботов
Для снижения нагрузки на CPU сервера от ботов популярных поисковых систем (Яндекс, Google или Bing), нужно через файл
Для отдельных ботов:
/* Для робота Яндекса задается таймаут в 40 секунд */ User-agent: Yandex Crawl-delay: 40
/* Для робота Bing от Microsoft задается таймаут в 40 секунд */ User-agent: bingbot Crawl-delay: 40
Сразу для всех ботов:
/* Для роботов всех поисковых систем задается таймаут в 40 секунд */ User-agent: * Crawl-delay: 40
Для робота Google настройки вносятся через Гугл-вебмастер. Настройки в robots.txt работать не будут!
Блокировка нежелательных роботов
Спам-боты и боты различных сервисов, таких как MegaIndex.ru, могут обходить выставленный в файле
/* Прописываем в конце файла .htaccess, соблюдая синтаксис */ RewriteCond %{HTTP_USER_AGENT} MegaIndex.ru [NC,OR] RewriteCond %{HTTP_USER_AGENT} MJ12bot [NC,OR] RewriteCond %{HTTP_USER_AGENT} BLEXBot [NC] RewriteRule ^(.*)$ — [F,L]
Вместо MegaIndex.ru, MJ12bot, BLEXBot прописываете имена ботов, которые создают нагрузку (при необходимости копируем и вставляем записи).
Последняя строка
Блокировка по IP-адресам
Иногда в статистике нагрузок на CPU можно встретить IP-адреса спамеров, которые ежедневно на сайте создают тысячи запросов, создавая тем самым нагрузку. Для их блокировки используем все тот же файл
/* Соблюдаем синтаксис, пишем нужные IP-адреса */ Order Allow,Deny Allow from all Deny from 144.76.15.235 Deny from 136.243.36.91 Deny from 37.113.176.89
Комментарии