Вчера некоторое время сайт был недоступен. Разбираться пришлось некоторое время с этим, но сейчас, вроде, всё позади. А дело было вот в чём.
Приблизительно в 10 вечера Яндекс.Метрика мне отрапортовала, что наш горячо любимый ресурс недоступен. Попытка открыть сайт привела к 502 ошибке (Bad Gateway), что не сильно обрадовало. SSH доступ есть, значит не всё потеряно. Рестартнул nginx, вроде открылась главная страница, но снова ушло всё в 502.
Такое чувство, что просто не хватало ресурсов сервера. Ну не microsoft exchange же там стоит :). Postfix, dovecot, mysql, php – всё, в принципе. munin удалил, он уже, пожалуй, отслужил своё. Идём читать логи.
Чтение логов веб-сервера не выявило ничего подозрительного, пожалуй, только запросы на /xmlrpc.php.
Вот такого вида:
81.17.18.67 - - [29/Jul/2014:17:11:57 +0400] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)" "-"
Причём записей были сотни. Код состояния 499, который мы тут видим, используется nginx когда клиент закрыл соединение раньше, чем сервер отправил ответ.
Хочется напомнить, что не так давно была атака, использующая WordPress-сайты для флуд-атаки через этот xmlrpc.php (XML-вызов удалённых процедур).
Пришёл к выводу, что сайт просто захлебнулся запросами. Решено было заблокировать доступ к этому файлу прямо средствами nginx
location =/xmlrpc.php { deny all; }
После перезагрузки сервера страницы стали открываться. Хотя в логах по прежнему появляются множественные обращения к этому сайту, но сейчас по крайней мере можно “дышать”. Ах, да, код http-состояния у них 403 (Forbidden), что есть гуд! Этот сервис мне не нужен.
Comments: