Процессорная нагрузка сайта на 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, то нужно искать другую причину.

Личные инструменты