WordPress интенсивная активность MySQL без доступа к блогу - PullRequest
0 голосов
/ 09 июня 2011

У меня есть специальная установка, в которой я передаю контент только через статический XML-файл, который содержится в моем блоге. Плагин создает статический XML каждый раз, когда публикуется новый пост в

/ WP-содержание / папки / my.xml

Отлично. Теперь я перенаправляю своих пользователей, которые обычно приходят через URL-адрес RSS-канала, на этот статический файл через .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
# Rewrite feed/ to Static Feed:
RewriteRule ^feed/?$ /wp-content/folder/my.xml [L,T=application/rss+xml]
</IfModule>
# END WordPress

Кажется, все это прекрасно работает - однако, смотря на MySQL, он находится под очень большой нагрузкой от числа пользователей, которых получает мой сервер. Это странно, так как в теории все, что они делают - это подают им статический XML. Глядя на процессы в phpmyadmin, я вижу много:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND ...

Что предлагает каждый запрос на / feed /? делает деятельность MySQL ... почему ??

Есть идеи?

Ответы [ 3 ]

1 голос
/ 09 июня 2011

Вы уверены, что этот файл создается ТОЛЬКО при публикации нового сообщения в блоге? Недействительный механизм регенерации - единственная причина, которая приходит мне в голову.

@ Денис также правильно упомянул, что вы, возможно, не перенаправляете в правильное местоположение. Пользователи могут вводить путь, по которому будет создаваться XML-файл, на лету для каждого запроса.

Edit:

Кредиты отправляются на @Denis, но попробуйте один из:

RewriteRule ^?feed=rss2$ /wp-content/folder/my.xml [L,T=application/rss+xml]

RewriteRule ^/?feed=rss2$ /wp-content/folder/my.xml [L,T=application/rss+xml]
1 голос
/ 09 июня 2011

Я полагаю, что вы пропускаете / в начале вашего регулярного выражения или RewriteBase / объявление над ним.


Попробуйте изменить правило переписывания следующим образом:

RewriteBase /
RewriteRule ^(feed/?)?$ /wp-content/folder/my.xml [L,T=application/rss+xml]
0 голосов
/ 10 июня 2011

У меня была похожая проблема.

Я обнаружил, что кто-то время от времени бомбардировал мою базу данных MySQL напрямую (удаленно). Они, наверное, взяли пароли, не знаю как.

Я решил это, установив MySQL в 'safe_mode: On' (используя CPanel / php.ini EZ Config)

Затем я изменил пароль и в CPanel.

После этого моя нагрузка резко сократилась.

Надеюсь, это поможет,

CGS


Обновление: проблемы вернулись, поэтому вышеописанное не помогло. После еще нескольких тестов я обнаружил, что именно плагин «WP Stats» вызывал множество запросов к базе данных. После того, как я деактивировал его, я больше не видел ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...