Кэширование сайтов на Joomla 3

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

Кэширование в Joomla 3

В данном руководстве описан процесс функционирования и активации кэширования в CMS Joomla 3.

Что такое серверное кэширование?

Серверное кэширование подразумевает сохранение статических копий динамических страниц на сервере для последующей их передачи при HTTP-запросах, что способствует увеличению скорости загрузки сайта.

Особенности кэширования в Joomla

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

В Joomla 3 существует два способа реализации серверного кэширования:

  1. раздел Настройка кэша
    Позволяют активировать кэширование для отдельных элементов страниц сайта: шаблонов, компонентов, плагинов и модулей.
  2. плагин Система - Кэш
    Позволяет активировать кэширование страниц целиком.

Настройки кэша

Чтобы перейти к настройке кэша в общих настройках Joomla 3 в панели администрирования:

  1. в верхнем меню выбираем СистемаОбщие настройки,
  2. кликаем по вкладке Система,
  3. переходим к разделу «Настройки кэша».
Настройки кэша в Joomla 3
Настройки кэша в Joomla 3

Опции раздела «Настройки кэша»:

Обработчик кэширования
Данная опции определяет механизм кэширования. Значение «Файл» (по умолчанию) определяет, что файлы кэша будут храниться на жестком диске в папке /cache/ (по умолчанию). Если на сервере активированы прекомпиляторы PHP, то в выпадающем списке будут предлагаться данные прекомпиляторы для обработки кэша. Стандартное файловое кэширование является наиболее стабильным.
Путь к каталогу кэша
По умолчанию кэш хранится в папке /cache/. Если вы желаете использовать другую директорию, то создайте её и укажете название в данном поле. Иначе оставьте поле пустым.
Время кэширования
Важная опция, определяющая время хранения кэша в минутах. Значение по умолчанию — 15 минут. Лучше всего использовать значение, равное приблизительной частоте обновления сайта. Если сайт обновляется раз в сутки, то указывайте значение 1440. Такой подход обеспечит максимальную скорость загрузки сайта.
Специфическое кэширование для платформы
Данную опцию следует активировать, если содержимое кода страницы зависит от типа устройства вывода. В таком случае данные одной страницы будут кэшироваться раздельно.
Системный кэш
Определяет тип кэширования: стандартное или прогрессивное. Об этом далее.

Стандартное кэширование

Данный тип подразумевает кэширование всех элементов (плагинов, шаблонов, компонентов) CMS Joomla в отдельности, в том числе модулей, в настройках которых не отключено их кэширование. В результате при первом запросе страницы после активации стандартного кэширования в папке /cache/ для каждого из элементов создаётся отдельный PHP-файл с данными. При последующих запросах эти файлы применяются для формирования страниц в течение указанного в настройках времени.

Стандартное кэширование является оптимальным и подходит для всех типов сайтов.

Прогрессивное кэширование

Данный тип использует механизм стандартного кэширования, но в дополнение кэширует все модули для каждой отдельной страницы, независимо от их индивидуальных настроек (в менеджере модулей) в один файл.

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

Кэширование модулей

Функционал Joomla 3 предоставляет возможность управлять кэшированием модулей в индивидуальном порядке через менеджер модулей. Это актуально для стандартных модулей (HTML-код, меню, навигатор и т. д.), а также для модулей сторонних расширений, если это предусмотрено разработчиками.

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

Настройка кэширования модуля

Чтобы настроить кэширование модуля в панели администрирования:

  1. в верхнем меню выбираем РасширенияМодули,
  2. кликаем по названию модуля,
  3. кликаем по вкладке Дополнительные параметры.
Настройка кэширования модуля
Настройка кэширования модуля

Нас интересуют следующие опции:

  • Кэширование
    Опция имеет два значения:
    1. По умолчанию
      Если кэширование активировано в настройках, то модуль будет кэшироваться.
    2. Не кэшировать
      Модуль не будет кэшироваться при активированном стандартном кэшировании, но будет при прогрессивном.
  • Срок кэширования
    Значение в секундах устанавливает срок обновления кэша для модуля при стандартном кэшировании (при прогрессивном учитывается время кэширования в общих настройках).

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

Далее рассмотрим отдельные модули, с которыми могут быть проблемы при активном кэшировании.

Модули JoomShopping

Подразумеваются стандартные модули компонента интернет-магазина JoomShopping:

  • Jshopping Cart (виртуальная корзина),
  • Jshopping Categories (категории товаров),
  • Jshopping Login (авторизация),
  • и т. д.

Все эти модули не имеют опций для индивидуальной настройки кэширования и не кэшируются при стандартном кэшировании, однако кэшируются при прогрессивном.

Это является проблемой для модуля виртуальной корзины (Jshopping Cart) при включенном прогрессивном кэшировании (или активном системном плагине Кэш: модуль виртуальной корзины является динамическим, т. к. отображает количество товаров в корзине. Если система будет кэшировать данные виртуальной корзины для каждой страницы при первом запросе, то все пользователи будут видеть то количество товаров в корзине, которое было закэшировано, и оно не будет меняться в зависимости от действий пользователя.

Для интернет-магазинов подходит только стандартное кэширование (системный плагин также должен быть отключен).

Модуль Breadcrumbs (навигатор сайта)

Кэширование «хлебных крошек» может вызывать сложности: данные модулей при стандартном кэшировании сохраняются для пунктов меню, и если пункт меню является категорией, дочерние страницы которой не являются пунктами меню, то система будет выводить одинаковое значение «хлебных крошек» для всех страниц, относящихся к данному пункту меню. Решить проблему позволяет отключение кэширования модуля «Навигатор сайта» (Breadcrumbs).

Плагин «Система - Кэш»

В Joomla 3 существует еще один встроенный инструмент, реализующий кэширование страниц: каждая страница сайта будет кэшироваться в отдельный PHP-файл, содержащий скомпилированный байт-код. Эти файлы сохраняются в папке /cache/page/ и имеют высший приоритет по отношению к файлам системного кэша, генерируемым для плагинов, модулей и т. д.

Плагин «Система - Кэш» значительно ускоряет загрузку веб-страниц, но не подходит для страниц, содержимое которых может отличаться в зависимости от действий пользователей, т. к. страницы кэшируются целиком, и настройки модулей на этот кэш не влияют.

Активация плагина

Чтобы активировать системный плагин Кэш в панели администрирования:

  1. в верхнем меню выбираем РасширенияПлагины,
  2. находим и выбираем плагин «Система - Кэш»,
  3. меняем опцию «Состояние» на «Включено»,
  4. жмем Сохранить или Сохранить и закрыть.

Настройки плагина

Плагин «Система - Кэш»
Плагин «Система - Кэш»

В разделе настройки кэша определяется время не только для системного кэша, но и для кэша страниц, создаваемого данным плагином.

Остальные опции отображаются в настройках самого плагина:

Использовать кэширование в браузере
Данная опция позволяет задействовать механизм хранения кэша в браузере. Более тонко настроить кэширование сайта в браузере можно с помощью файла .htaccess.
Исключить пункты меню
В текстовом поле предоставляется выбор пунктов меню: соответствующие выбранным пунктам страницы кэшироваться плагином не будут. Так можно исключить кэширование страниц с данными пользователя, виртуальной корзины и других динамических страниц. При этом, если активирован системный кэш, то система будет использовать его файлы для формирования данных страниц.
Исключить URL
Данная опция, доступная во вкладке «Дополнительные параметры», позволяет исключить кэширование страниц по URL-адресам, перечисленным в текстовой области.

Очистка кэша в Joomla

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

Это можно осуществить стандартным способом в панели администрирования:

СистемаОчистить весь кэш
Для полной очистки папки /cache/.
Очистить весь кэш в Joomla
Очистить весь кэш в Joomla
СистемаОчистить устаревший кэш
Для очистки файлов кэша с истекшим сроком действия.
Очистка устаревшего кэша в Joomla
Очистка устаревшего кэша в Joomla

Самым удобным инструментом для очистки кэша в Joomla 3 является плагин Cache Cleaner, позволяющий удалять кэш в фоновом режиме по нажатию на соответствующую кнопку.

Выводы и заключение

  • Серверное кэширование веб-страниц позволяет значительно ускорить загрузку сайта на Joomla.
  • Серверное кэширование сайта на Joomla можно обеспечить с помощью внутреннего функционала CMS.
  • Стандартное кэширование в Joomla обеспечивает кэширование компонентов, плагинов и модулей в индивидуальном порядке и не вызывает проблем на большинстве сайтов.
  • Прогрессивное кэширование в Joomla дополнительно кэширует все модули в отдельный файл и не подходит для больших сайтов и сайтов с динамическими модулями.
  • В Joomla есть возможность настраивать кэширование модулей.
  • Активация системного плагина Кэш обеспечивает кэширование страниц целиком и не походит для веб-страниц, содержание которых зависит от действий пользователя.
  • Системный плагин «Кэш» может функционировать вместе с системным кзшем, если в настройках плагина создать исключения для отдельных страниц.

Ссылки

Автор:
Оцените материал:
5.0/5

Добавить комментарий