Как использовать WP Super Cache и Jetpack Photon для оптимизации производительности WordPress в Ubuntu 14.04

Вступление

В этом руководстве мы научим вас оптимизировать производительность WordPress с помощью плагинов WP Super Cache и Jetpack Photon и Nginx в качестве веб-сервера. С этой настройкой ваш сайт WordPress может значительно увеличить свою параллельную пользовательскую емкость, используя преимущества методов кэширования, которые предоставляют вышеупомянутые плагины.

WP Super Cache работает путем кэширования ваших страниц WordPress в виде статических страниц HTML, поэтому запросы страниц для уже кэшированной страницы не должны обрабатываться PHP-скриптами WordPress. Как правило, большинство посетителей вашего сайта будут просматривать кэшированные версии страниц WordPress, поэтому ваш сервер будет иметь большую вычислительную мощность для обслуживания большего числа пользователей. Плагин WP Super Cache разработан Donncha O Caoimh.

Jetpack Photon - это служба ускорения изображений, которая работает путем кэширования и обслуживания ваших изображений WordPress через собственную сеть доставки контента (CDN). Photon является одним из модулей, включенных в плагин Jetpack, который разработан командой Jetpack Automattic.

Предпосылки

Чтобы следовать этому руководству, вам понадобится сервер WordPress, который использует Nginx в качестве своего веб-сервера. Если у вас его нет, вы можете использовать эти учебники для его создания:

Требования к плагину или ограничения

WP Super Cache * не * работает с плагинами, которые используют аргументы запроса, потому что он не работает, если вы передаете аргументы запроса в Nginx. Кроме того, из-за этого вы * не должны * использовать настройки WordPress Default Permalink (в качестве аргументов используются номера страниц WordPress).

Jetpack Фотон Ограничения:

  • Вы должны подключить свой сайт к WordPress.com, чтобы включить Jetpack, который требует бесплатной учетной записи WordPress.com

  • Ваш сайт WordPress должен прослушивать порт 80 (Photon не будет работать с сайтами только по HTTPS)

  • Как только изображение в формате gif, jpg или png кэшируется, оно не может быть обновлено. Единственный обходной путь - повторно загрузить переименованное изображение на ваш сайт.

  • Изображения, которые слишком долго копируются в CDN Photon (более 10 секунд), должны быть переименованы и повторно загружены

Если вы не хотите использовать Photon, не стесняйтесь пропустить этот раздел руководства.

Теперь, когда у нас есть все необходимые предпосылки, давайте начнем установку WP Super Cache!

Установите и настройте плагин WP Super Cache

Первым шагом к установке плагина WP Super Cache является его загрузка с wordpress.org в ваш домашний каталог:

cd ~; wget http://downloads.wordpress.org/plugin/wp-super-cache.1.4.zip

Если у вас не установлен пакет распаковки, сделайте это сейчас:

sudo apt-get install unzip

Затем распакуйте плагин WP Super Cache в каталог плагинов WordPress (замените выделенный путь своим собственным, если вы установили WordPress где-то еще):

cd /wp-content/plugins
unzip ~/wp-super-cache.1.4.zip

Далее мы изменим группу владения плагином:

sudo chgrp -R www-data wp-super-cache

И мы позволим плагину записывать в каталог + wp-content и файл` + wp-config.php`:

chmod g+w /wp-content
chmod g+w /wp-config.php

Теперь, когда файлы WordPress настроены правильно, давайте активируем плагин.

Активировать плагин WP Super Cache

Войдите на свой сайт WordPress от имени администратора и перейдите на панель инструментов (http://example.com/wp-admin/). Активируйте плагин WP Super Cache, затем перейдите в его окно настроек, выполнив следующие действия:

  1. Нажмите на Plugins (левая панель)

  2. Нажмите Activate прямо под WP Super Cache

  3. Нажмите на WP Super Cache Settings

Включить кеширование

Теперь мы включим кэширование и настроим WP Super Cache с некоторыми разумными настройками:

  1. Перейдите на вкладку «Дополнительно»

  2. Проверьте Cache хиты на этот сайт для быстрого доступа .

  3. Выберите Используйте mod_rewrite для обслуживания файлов кэша .

Это настраивает WP Super Cache для кэширования файлов, к которым осуществляется доступ, а параметр mod_rewrite оставляет его до Nginx для обслуживания кэшированных файлов. На самом деле мы не собираемся использовать mod_rewrite, потому что это плагин Apache, и мы используем Nginx в качестве нашего веб-сервера, но нам нужно будет обновить конфигурацию блока нашего сервера Nginx, чтобы Nginx надлежащим образом обслуживал кэшированные файлы. Мы вернемся к этому после того, как настроим еще несколько настроек WP Super Cache (примечание: следующие настройки не обязательны):

  1. Проверьте Сжатие страниц, чтобы они быстрее показывались посетителям .

  2. Проверьте Не кешируйте страницы для известных пользователей .

  3. Проверьте Cache rebuild.

  4. Проверьте Дополнительные проверки домашней страницы .

Затем вам нужно сохранить настройки, нажав кнопку Update Status, которая должна быть ниже настроек, которые вы только что изменили:

изображение: https: //assets.digitalocean.com/articles/wordpress_supercache/update_status.png [Кнопка обновления состояния]

WP Super Cache теперь настроен для кэширования ваших страниц WordPress. Нам по-прежнему необходимо настроить Nginx для сохранения кэшированных файлов, но давайте рассмотрим некоторые другие вещи в окне настроек WP Super Cache.

Предупреждения о Mod Rewrite и сборке мусора

На этом этапе вы увидите несколько предупреждающих баннеров в верхней части окна конфигурации WP Super Cache. Будет два предупреждения о правилах Mod Rewrite (вот первое):

изображение: https: //assets.digitalocean.com/articles/wordpress_supercache/mod_rewrite_warning.png [Предупреждение о перезаписи мода]

Вы можете игнорировать это, потому что мы собираемся использовать Nginx вместо Apache.

Далее вы увидите предупреждение о настройках сборки мусора:

изображение: https: //assets.digitalocean.com/articles/wordpress_supercache/garbage_collection.png [Предупреждение о сборке мусора]

Это предупреждение можно удалить, отклонив его (т.е. нажмите кнопку «Уволить» или настройте сборку мусора. Чтобы настроить сборку мусора, перейдите в раздел Expiry Time & Garbage Collection на вкладке Advanced, затем настройте его по своему вкусу и нажмите кнопку Change Expiration.

Просмотр содержимого кэша

Вы можете увидеть список всех кэшированных страниц, перейдя на вкладку Contents настроек WP Super Cache. Здесь вы увидите «Cache stats», которая показывает, сколько файлов кэшируется (и какие файлы кэшируются). Вы также можете удалить текущий кеш отсюда.

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

Дополнительная конфигурация WP Super Cache

В дополнение к настройкам, рассмотренным выше, есть много других, которые могут оказаться полезными или интересными. Мы кратко рассмотрим вкладки CDN и Preloading.

  • Использование CDN * - пропустите, если вы собираетесь использовать Jetpack Photon

Если вы используете CDN, обязательно включите поддержку CDN на вкладке CDN. Все параметры, необходимые для разгрузки статических ресурсов, находятся здесь.

  • Предварительная загрузка кеша *

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

Настройте Nginx для обслуживания кэшированных файлов

Теперь, когда ваш сайт WordPress кэширует страницы с помощью WP Super Cache, вы должны настроить Nginx для обслуживания кэшированных файлов. Отредактируйте конфигурацию блока сервера Nginx:

sudo vi /etc/nginx/sites-enabled/wordpress

Если вы следовали обязательным учебным пособиям, поместите следующие строки конфигурации непосредственно под строкой + server_name +:

   set $cache_uri $request_uri;

   # POST requests and urls with a query string should always go to PHP
   if ($request_method = POST) {
       set $cache_uri 'null cache';
   }
   if ($query_string != "") {
       set $cache_uri 'null cache';
   }

   # Don't cache uris containing the following segments
   if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
       set $cache_uri 'null cache';
   }

   # Don't use the cache for logged in users or recent commenters
   if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
       set $cache_uri 'null cache';
   }

   # Use cached or actual file if they exists, otherwise pass request to WordPress
   location / {
       try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
   }

Затем удалите следующие строки до + location ~ \ .php $ {+.

Перезапустите Nginx, чтобы изменения вступили в силу:

sudo service nginx restart

Теперь страницы вашего сайта WordPress будут кэшироваться через WP Super Cache! Если вы хотите также кэшировать свои изображения, используя Jetpack Photon, перейдите к следующему разделу.

Установить и включить Jetpack Photon

Загрузите плагин Jetpack в свой домашний каталог:

cd ~; wget http://downloads.wordpress.org/plugin/jetpack.latest-stable.zip

Затем распакуйте архив Jetpack в каталог плагинов WordPress:

cd /wp-content/plugins
unzip ~/jetpack.latest-stable.zip
sudo chgrp -R www-data jetpack

Jetpack поставляется с несколькими модулями, отличными от Photon, многие из которых включены по умолчанию. Если вы хотите использовать другие модули Jetpack, в дополнение к Jetpack, пропустите следующее редактирование и активируйте модуль Photon через настройки подключаемого модуля Jetpack на панели администратора WordPress. В противном случае мы можем отключить другие модули, добавив несколько строк кода в файлы PHP плагина.

Откройте + wp-config.php + для редактирования:

vi /wp-config.php

Перейдите в конец файла и добавьте следующие строки кода:

function change_default_modules() {
   return array( 'photon' );  // activate these modules by default
}
add_filter( 'jetpack_get_default_modules', 'change_default_modules' );

function activate_specific_jetpack_modules( $modules ) {
       $active_modules = array( 'photon' );  // enable these modules
       $modules = array_intersect_key( $modules, array_flip( $active_modules ) );  // deactivate other modules
       return $modules;
}
add_filter( 'jetpack_get_available_modules', 'activate_specific_jetpack_modules' );

Сохранить и выйти. Теперь, когда вы активируете плагин Jetpack, он будет загружать только модуль Photon и отключать использование всех других модулей Jetpack.

Активировать плагин Jetpack

Теперь войдите на свой сайт WordPress от имени администратора и перейдите на Dashboard (http://example.com/wp-admin/). Активируйте плагин Jetpack, затем перейдите в его настройки, выполнив следующие действия:

  1. Нажмите на Plugins (левая панель)

  2. Нажмите Activate прямо под Jetpack

  3. Нажмите Connect to WordPress.com, в зеленом баннере в верхней части окна плагинов.

  4. Введите свой логин на WordPress.com и нажмите Authorize Jetpack

изображение: https: //assets.digitalocean.com/articles/wordpress_supercache/authorize_jetpack.png [Авторизовать Jetpack]

Теперь все изображения на вашем сайте WordPress (.png, .jpg, .gif) будут предоставляться из CDN Jetpack Photon. Вот несколько способов повлиять на ваш сервер:

  • * Меньшее потребление полосы пропускания *: ваш сервер будет использовать меньшую исходящую полосу пропускания, потому что Photon CDN, предоставляемый WordPress.com, будет обслуживать изображения вашего сайта.

  • * Меньше потребления ресурсов *: он будет потреблять меньше ресурсов процессора и памяти, поскольку больше не будет предоставлять пользователям изображения, а в основном только статические страницы.

  • * Большая емкость пользователей *: он сможет обрабатывать больше одновременных пользователей, поскольку он использует меньше ресурсов на запрос

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

Сравнение производительности

Чтобы показать вам потенциальную выгоду производительности этой установки, мы настроили два VPS с 1 ЦП / 1 ГБ ОЗУ (один без WP Super Cache, другой с ним) и использовали Apache JMeter для выполнения нагрузочного теста против них (несколько пользователей). доступ к 5 страницам WordPress за 10 секунд в цикле).

Не кэшированный сервер мог обрабатывать около 3 смоделированных пользователей в секунду, прежде чем показывал проблемы с производительностью из-за загрузки ЦП.

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

Руководство по использованию Apache JMeter для выполнения собственного нагрузочного тестирования доступно здесь: https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing- на веб-сервере [Как использовать Apache JMeter для выполнения нагрузочного тестирования на веб-сервере]

Заключение

Теперь, когда у вас установлены WP Super Cache и Jetpack Photon, вы сможете обслуживать гораздо больше пользователей, чем раньше. Возможно, вы захотите поиграть с настройками WP Super Cache, пока не почувствуете, что у вас есть конфигурация, которая наилучшим образом соответствует вашим потребностям.

Не стесняйтесь задавать вопросы или свои собственные сравнения производительности!

Related