Достижение ограничений MaxRequestWorkers, вызванных бот-трафиком ERR_CONNECTION_TIMED_OUT
У меня был ERR_CONNECTION_TIMED_OUT, и веб-сайт несколько раз останавливался в течение примерно 1,5 часов, и это то, что я нашел в журналах:
[Mon May 21 11:21:51.236380 2018] [mpm_worker:error] [pid 3206:tid 140035442734330] AH00287: server is within MinSpareThreads of MaxRequestWorkers, consider raising the MaxRequestWorkers setting
я пошел в /etc/apache2/conf/httpd.conf
и нашел это:
MaxRequestWorkers [The number specified for my server]
Я только вчера сменил сервер, и это одна из теорий сетевых ребят о том, что может быть причиной проблемы:
Сервер поражает максимальное количество рабочих из-за типа входящего трафика, который является трафиком бота. BingBot и Googlebot снова сканируют ваш сайт, вероятно, из-за нового сервера. Вы можете управлять скоростью сканирования этих ботов, чтобы они запрашивали так много в любой момент времени.
Это правдоподобное объяснение? Мне трудно в это поверить.
Изменить 1: Звучит как атака типа "отказ в обслуживании" (DDoS), выполняемая Google!
1 ответ
Есть даже статьи, в которых рассказывается о том, как трафик ботов может повлиять на сайт:
- http://support.hostgator.com/articles/specialized-help/telling-google-how-often-to-crawl-your-website
- https://support.google.com/webmasters/answer/48620?hl=en
- http://support.hostgator.com/articles/specialized-help/telling-bing-how-often-to-crawl-your-website
- http://support.hostgator.com/articles/hosting-guide/lets-get-started/how-to-use-robots-txt
- http://support.hostgator.com/articles/specialized-help/technical/apache-htaccess/user-agent-blocks-mainly-for-bots
Я не уверен, был ли трафик ботов действительно причиной моей проблемы, но сообщение об ошибке включало эту часть: consider raising the MaxRequestWorkers setting
, Это то, что я сделал, и теперь все работает правильно.
ВАЖНО: Если вы сделаете это, не забудьте прочитать https://httpd.apache.org/docs/current/mod/mpm_common.html и помните, что если вы увеличите MaxRequestWorkers, вам придется соответственно увеличить ServerLimit. Документация объясняет это.