Категории

Настройка WP Super Cache для виртуального хостинга

Большинство блогов работает на самом простом виде хостинга - виртуальном (shared hosting). Обычно такой хостинг не требует глубоких знаний для управления блогом, что несомненно является плюсом. Однако он накладывает на блог жесткие ограничения, связанные с нагрузкой. Часто блоггеры не замечают эти ограничения, пока не начинаются проблемы: блог использует все выделенные ему лимиты и начинает выдавать ошибки в работе, самая распространенная из которых - Error 500.

Эта ошибка говорит о том, что сервер не может обработать все запросы, отправляемые к нему. Обычно причинами для ошибки 500 являются превышение количества операций ввода-вывода (слишком много запросов за единицу времени, больше, чем выделено хостером на один блог), превышение предельно допустимой нагрузки на CPU сервера, который обслуживает ваш блог, превышение допустимого размера памяти, выделяемого для работы вашего аккаунта. Но даже это не является истинными причинами - это все следствия процессов, приводящих к возникновению ошибок в работе блога.

По-настоящему причин две - неоптимизированная работа скриптов WordPress (все файлы WordPress - это скрипты, выполняющие определенные команды и посылающие определенные запросы к файлам), и высокая посещаемость. Единственной панацеей, спасающей работу блога от ошибок, но работающей до определенного момента, является кэширование. Конечно, можно заниматься оптимизацией скриптов, уменьшая количество обращений к базе данных, сокращая количество обращений к файлам (уменьшая их количество за счет объединения несколько файлов в один), но когда достигнуты все разумные пределы оптимизации, то ничего не остается, как обратиться именно к кэшированию. Хочу поделиться принципом настройки одного из самых популярных плагинов кэширования WP Super Cache, который поможет снизить нагрузку на маломощном виртуальном хостинге.

Установка WP Super Cache

Первым делом установите плагин WP Super Cache. Перед установкой нужно сделать папку wp-content доступной для записи (CMOD 777) - плагин записывает в нее несколько файлов.

Кэш

1 После установки перейдите в раздел настроек плагина, откройте вкладку Кэш, и включите кэширование. При включении плагин пропишет в файле wp-config.php нужные для работы системы кэширования директивы.

Настройка WP Super Cache для виртуального хостинга

Настройки

2 Перейдите на вкладку Настройки, и отметьте чекбокс Использовать mod_rewrite для обслуживания кэша. Это включит наименее ресурсоемкий и достаточно быстрый алгоритм кэширования.

3 Отметьте пункт Кэшировать хиты сайта для ускорения доступа. Это позволит плагину кэшировать и обеспечивать наиболее быстрый доступ к самым посещаемым в данный момент страницам блога.

Настройка WP Super Cache для виртуального хостинга

4 Отметьте пункт Авто перестройка кэша. Эта настройка позволит не показывать страницу до тех пор, пока она не будет закэширована.

5 Отметьте пункт Сжимать файлы кэша чтобы ускорить работу.

Настройка WP Super Cache для виртуального хостинга

Вот тут будьте внимательны!
Если у вас блог создает чрезмерную нагрузку на CPU, то использование сжатия увеличит ее еще больше, так как сервер будет не только выполнять команды скриптов перед тем, как сформируется кэш, но и сжимать файлы после этого, что потребует дополнительного процессорного времени и памяти. В этом случае лучше отключить сжатие кэша.
Если у вас блог превышает допустимое количество операций ввода-вывода, но нагрузка на CPU в норме, то лучше включить сжатие кэша - это уменьшит время отдачи файлов браузеру и сократит их количество и размер, что положительно скажется на быстродействии.

6 Отметьте пункт Поддержка мобильных устройств. Это позволит плагину отдавать закэшированные страницы мобильным браузерам.

7 Отметьте пункт Обновлять страницу при добавлении нового комментария к ней. Если на странице будет оставлен комментарий, то плагин заново закэширует ее. Таким образом посетители будут видеть самую последнюю версию страницы.

Настройка WP Super Cache для виртуального хостинга

Не забывайте нажимать кнопку Обновить, чтобы сохранить сделанные настройки.

Настройка WP Super Cache для виртуального хостинга

8 Обязательно обновите правила mod_rewrite.

Настройка WP Super Cache для виртуального хостинга

Плагин запишет их в файл .htaccess - они отвечают за правильную отдачу закэшированных страниц и браузерное кэширование.

Настройка WP Super Cache для виртуального хостинга

9 Установите актуальность кэша равной нулю.

Настройка WP Super Cache для виртуального хостинга

Это важный момент, на котором прокалываются многие начинающие блоггеры. Они устанавливают плагин WP Super Cache в надежде, что нагрузка на хостинг сократиться. Однако если блог достаточно большой, а время жизни закэшированных страниц маленькое, то WordPress будет постоянно посылать команды чистить кэш, удаляя из него просроченные страницы. В итоге скрипт wp-cron.php, отвечающий за запуск команд по расписанию, будет постоянно терзать ваш блог, что может привести к существенному увеличению нагрузки. Актуальность кэша полезна только для хостинга с небольшим размером выделенного пространства - плагин периодически чистит просроченный кэш, не давая ему заполнять место. Если вы озабочены снижением нагрузки, то тогда позаботьтесь о том, чтобы на хостинге было достаточно свободного места для кэша, равное размеру всех файлов блога + 10-20%, и отключите периодическую проверку актуальности кэша. Такой запас позволит плагину закэшировать все страницы, открываемые посетителями, и никогда не удалять закэшированный вариант. Отдача уже готового, закэшированного варианта страницы позволяет убрать лишние операции ввода-вывода, лишнюю нагрузку с процессора, и лишние обращения к базе данных.

10 Оставьте форму, в которой введены названия поисковых ботов, без изменений. Это позволит снизить нагрузку, создаваемую поисковыми ботами - каждый раз, когда для формирования данных для поисковиков будет требоваться динамические данные, связанные с запросами к файлам и базе данных, плагин будет отдавать уже имеющийся, закэшированный вариант.

Общий кэш

11 Перейдите на вкладку Общий кэш, и выставьте интервал обновления общего кэша равным нулю. Как я уже говорил, блогу на хостинге с достаточным количеством свободного места не нужно чистить кэш, поэтому автоматическую чистку кэша можно отключить.

Настройка WP Super Cache для виртуального хостинга

Вы можете следить за созданием общего кэша прямо в настройках плагина, выставив уровень информированности, либо получая письма по электронной почте, сообщающие о начале и завершении этой операции.

Общий кэш - очень полезная опция плагина WP Super Cache, его главное преимущество перед остальными плагинами. Она позволяет за один раз закэшировать вообще все страницы блога. Таким образом посетителям всегда будут отдаваться заранее подготовленные, закэшированные варианты страниц. Понятно, что при отдаче этих страниц будет использоваться гораздо меньше ресурсов, чем при их динамическом формировании. Выберете время, в которое нагрузка на хостинг наименьшая (обычно это бывает ночью, когда количество посетителей падает), и создайте общий кэш. В часы с наибольшей нагрузкой уже созданный кэш избавит блог от ошибок.

После настройки плагина сделайте папку wp-content доступной для записи только вам (CMOD 755).

Заключение

Кэширование - тема давняя, обсуждаемая, и неоднозначная. Иногда советы по организации кэширования могут помочь, а иногда и нет, так как кэширование зависит от работы множества скриптов. К сожалению, WordPress является тяжелой CMS с высокими требованиями к хостингу. WordPress создает высокую нагрузку, потребляет много процессорного времени и оперативной памяти, его скрипты крайне неоптимизированны и далеки от совершенства, что создает высокую нагрузку на хостинг. В версии 3+ административная часть даже с одним активным пользователем создает высокую нагрузку - все это является недостатками системы, с которыми мы вынуждены бороться самостоятельно.

Эта статья ни в коей мере не претендует на истину в последней инстанции, и любой ее раздел может быть подвергнут критике. Я лишь поделился собственным опытом использования плагина WP Super Cache для обеспечения работы блога с высокой посещаемостью (от 1000 до 5000 уникальных посетителей в сутки) на виртуальном хостинге.

Скачать
WP Super Cache
вы перейдете по ссылке http://wordpress.org/extend/plugins/wp-super-cache/

Нашли ошибку? Выделите ее и нажмите левый Ctrl + Enter.

18 комментариев

  • Вопрос на засыпку эта настройка подойдет для VPS ?

    • Да, подойдет, если установлен модуль mod_rewrite. Если же такой на сервере не установлен, то в настройках плагина следует установить режим «Использовать PHP для обслуживания кэша».

    • rasse1

      а у меня уже есть папка wp content , еще одну создавать нужно? Единственное , что не понятно , так это про эту папку)

    • rasse1

      И еще одна проблема , вылезла ошибка Среди правил mod_rewrite обнаружены правила от Supercache . Для работы с кэшем будут использоваться они. Чтобы удалить эти правила, Вам нужно вручную отредактировать файл .htaccess. Было бы интересно знать что именно нужно редактировать

      • У вас уже прописаны правила для mod_rewrite, так что вам ничего редактировать не нужно. Если очень нужно, то смотрите тот блок команд в файле .htacess, который обозначен:

        .

  • anbiona

    1. Мил человек подскажи пожалуйста а сколько оптимально надо выставить время в разделе настроек: «Общий кэш» Вот здесь:

    «Обновлять общий кэш каждые минут введите [ 0??? ] чтобы отключить, минимальное допустимое кол-во минут 30).»

    ————————————————————————————-

    2. И второй вопрос почему так жутко стало тормозить в админке? Общее состояние кэширования плагина очень устраивает, но в админке теперь переключение по меню ужасно медленное.

    • 1. Ставьте 0. Этот вопрос подробно описан в пункте 11 этой статьи.

    • 2. Скорее всего тормоза связаны с созданием общего кэша. Дождитесь, когда он будет создан. Это единовременная процедура, в дальнейшем ее повторять не придется.

    • rasse1

      я вообще удалил этот плагин , не кеширует статьи , хотя все делал как у вас написано , в кеше 2 статьи из 350.. Не знаю почему так..Да и вообще что то переоптимизровался я , в некоторых статьях картинки поломались , а в некоторых в норме. Не могу понять почему так..В архиве бекапа все картинки в норме..Странно

      • rasse1

        Похоже все разъяснилось..Причина недоступности некоторых изображений крылась в плагине для бекапа файлов и базы данных , так как хостер сделал мне бекап и все стало в норме. Опасные эти плагины для бекапов)

  • anbiona

    Ок, спасибо! Теперь предельно ясно все. Удачи вам ;)

  • А у меня после настроек вылезло сообщение:
    Отсутствующие модули Apache

    mod_headers — Необходимо настроить кэширование на странице плагина. Пользователи браузера IE7 будут видеть необновленные страницы из кэша без поддержки данного модуля.
    mod_expires — Установите дату истечения актуальности страниц. Пользователи могут не увидеть новую версию кэшированной страницы без данного модуля.

    Что с этим делать?

  • Все сделал как написано выше. Но когда я выхожу с админки или захожу с другого браузера не авторизовавшись. Все буквы в абру кадабру превратились и половина картинок вообще не отображается.. Как избавиться точнее исправить? сейчас я его деактивировал на время

  • Спасибо
    Отличная статья
    Было бы интересно почитать такую же информативную статью о настройках плагина Hyper Cache

    Если у вас блог создает чрезмерную нагрузку на CPU, то использование сжатия увеличит ее еще больше

    Интересен аналогичный параметр в настройках Hyper Cache.
    Периодически вылезаю за пределы лимита использования CPU. Хотелось бы решить эту проблему.

    У себя на сайте использую Hyper Cache и WP File Cache.
    Ну и у хостера Ngix включен .
    Посещаемость около 250 в сутки.

  • immortalrokx@mail.ru

    Здравствуйте. Не подскажите в чём может быть проблема, делаю всё как описано у вас, но после создания общего кэша, во вкладке состояние кэша, прокешировано всгео пару страниц. И при подключении по ftp всех прокешированных страниц не нашёл

  • magicshop

    у меня записи в WP выводятся через .html
    А во вкладке «состояние кеша», выводится как будто у страниц, которые генерирует SuperCache .html/
    т.е еще слеш на конце http://take.ms/XNT10

    Хотя на фтп этих страниц не видно. Я так понимаю это неправильно, и страницы должны для записей генерироваться через .html без слеша, так?

Комментировать

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Спасибо!

Теперь редакторы в курсе.

Закрыть