Процессорная нагрузка сайта на Wordpress
Материал из 1GbWiki.
Для сайтов, работающих на CMS WordPress, существует популярная проблема с процессорной нагрузкой.
[править] Как понять, что это ваш случай?
Посмотрите логи ограничителя процессорной нагрузки. Подробнее о том, как читать эти логи, вы можете узнать в этой статье. В файле /http/.proclimit_<произвольный_набор_символов>/.cpu_details_<дата>.log вы увидите строки следующего вида (смотреть нужно за то время, когда была зафиксирована нагрузка на сервер):
2016-02-16 20:50:37 Tue Feb 16 20:50:37 2016 <адрес_вашего_сайта> 2370 /xmlrpc.php 142.4.217.180 2016-02-16 20:50:41 Tue Feb 16 20:50:41 2016 <адрес_вашего_сайта> 2080 /xmlrpc.php 142.4.217.180 2016-02-16 20:50:46 Tue Feb 16 20:50:46 2016 <адрес_вашего_сайта> 2210 /xmlrpc.php 142.4.217.180 2016-02-16 20:50:50 Tue Feb 16 20:50:50 2016 <адрес_вашего_сайта> 1920 /xmlrpc.php 142.4.217.180
В логах web-сервера в папке /logs вы найдете POST-запросы к этому файлу:
142.4.217.180 - - [16/Feb/2016:22:03:27 +0300] "POST /xmlrpc.php HTTP/1.1" 200 64699 "-" "-" 142.4.217.180 - - [16/Feb/2016:22:03:31 +0300] "POST /xmlrpc.php HTTP/1.1" 200 64699 "-" "-" 142.4.217.180 - - [16/Feb/2016:22:03:35 +0300] "POST /xmlrpc.php HTTP/1.1" 200 64699 "-" "-" 142.4.217.180 - - [16/Feb/2016:22:03:39 +0300] "POST /xmlrpc.php HTTP/1.1" 200 64699 "-" "-"
IP-адрес, с которого идут запросы, у вас будет другой.
[править] Что это за файл - xmlrpc.php и зачем он нужен?
Протокол XML-RPC используется для управления вашим блогом через различные приложения. Если вы эту возможность не используете, то он вам не нужен. Более того, файл xmlrpc.php дает возможность проводить брутфорс-атаки на ваш сайт, что, собственно, и создает такую нагрузку. В версиях WordPress 3.5 и выше этот протокол по умолчанию включен и простой встроенной возможности отключить его нет.
[править] Что делать?
Есть несколько вариантов:
1. С помощью плагина Disable XML-RPC. Скачайте его и установите его на ваш сайт со страницы: https://wordpress.org/plugins/disable-xml-rpc/ . Этот плагин отключит возможность управления вашим сайтом по протоколу XML-RPC.
2. Добавьте в .htaccess следующие строки:
# block xmlrpc.php requests from wordpress <files xmlrpc.php> order deny,allow deny from all </files>
Стоит отметить, что это все же частный случай возникновения процессорной нагрузки на сайте. Если ваш сайт работает на CMS Wordpress, а в логах вы не нашли ничего про xmlrpc.php, то нужно искать другую причину.