Кэширование Joomla. Очистка кэша в Joomla. Снижение нагрузки на сервер.  Кэширование в Joomla. Снимаем нагрузку с сервера Joomla 3 почему разрастается папка cache

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

Вовремя обновляйте Joomla и ее расширения.

Запомните: очень важно иметь в своем арсенале последнюю версию Joomla, т.к. с каждой новой версией код Joomla улучшается. Даже если обновления несущественны свежие версии Joomla, как правило, быстрее предыдущих.

Включите встроенное Joomla-кэширование.

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

Чтобы включить Joomla-кэширование необходимо зайти в «Система» –> «Общие настройки»

Перейти во вкладку «Система»:

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

После выбора метода кэширования нажмите на кнопку «Сохранить».

В появившемся поле вы увидите длинный список установленных плагинов. Для удобства воспользуйтесь поиском, введите там «Кэш» и нажмите на кнопку с лупой:

Включите плагин, нажав на красную иконку возле названия плагина:

Иконка рядом с названием плагина станет зеленой:

Включите Gzip-сжатие.

Еще один метод увеличения скорости загрузки сайта – это сжатие. Если включить встроенное Gzip-сжатие, то перед отправкой посетителю сайта его страницы будут сжиматься, сжатые страницы загружаются гораздо быстрее. Чтобы включить сжатие пройдите в меню «Система-Общие настройки»:

Перейдите во вкладку «Сервер»:

В пункте Gzip-сжатие страниц выберите «Да» и сохраните:

Для проверки Gzip-сжатия можно использовать различные бесплатные онлайн инструменты, например http://checkgzipcompression.com . Если все нормально, сервис покажет вам результаты сжатия, как в примере ниже:



Обратите внимание, что иногда Gzip-сжатие может привести к ошибкам. Если такое происходит, значит на сервере не установлена или неправильно настроена Gzip, необходимо связаться с технической поддержкой хостинга.

Пропишите параметры оптимизации в.htaccess.

В файле.htaccess прописываются параметры обработки файлов сайта веб-сервером. Для ускорения загрузки страниц можно прописать следующие параметры:

ETag говорит браузерам о том, что картинка скачена и может быть загружена из кэша браузера, а не с сервера.

Expires headers – похож на ETag с той лишь разницей, что можно задавать различные сроки действия для различных типов файлов.

AddOutputFilterByType DEFLATE – уменьшает исходный код, путем удаления из скомпилированных HTML-файлов пустых строк, пробелов.

########## Begin - ETag Optimization ## This rule will create an ETag for files based only on the modification ## timestamp and their size. ## Note: It may cause problems on your server and you may need to remove it FileETag MTime Size # AddOutputFilterByType is now deprecated by Apache. Use mod_filter in the future. AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript # Enable expiration control ExpiresActive On # Default expiration: 1 hour after request ExpiresDefault "now plus 1 hour" # CSS and JS expiration: 1 week after request ExpiresByType text/css "now plus 1 week" ExpiresByType application/javascript "now plus 1 week" ExpiresByType application/x-javascript "now plus 1 week" # Image files expiration: 1 month after request ExpiresByType image/bmp "now plus 1 month" ExpiresByType image/gif "now plus 1 month" ExpiresByType image/jpeg "now plus 1 month" ExpiresByType image/jp2 "now plus 1 month" ExpiresByType image/pipeg "now plus 1 month" ExpiresByType image/png "now plus 1 month" ExpiresByType image/svg+xml "now plus 1 month" ExpiresByType image/tiff "now plus 1 month" ExpiresByType image/vnd.microsoft.icon "now plus 1 month" ExpiresByType image/x-icon "now plus 1 month" ExpiresByType image/ico "now plus 1 month" ExpiresByType image/icon "now plus 1 month" ExpiresByType text/ico "now plus 1 month" ExpiresByType application/ico "now plus 1 month" ExpiresByType image/vnd.wap.wbmp "now plus 1 month" ExpiresByType application/vnd.wap.wbxml "now plus 1 month" ExpiresByType application/smil "now plus 1 month" # Audio files expiration: 1 month after request ExpiresByType audio/basic "now plus 1 month" ExpiresByType audio/mid "now plus 1 month" ExpiresByType audio/midi "now plus 1 month" ExpiresByType audio/mpeg "now plus 1 month" ExpiresByType audio/x-aiff "now plus 1 month" ExpiresByType audio/x-mpegurl "now plus 1 month" ExpiresByType audio/x-pn-realaudio "now plus 1 month" ExpiresByType audio/x-wav "now plus 1 month" # Movie files expiration: 1 month after request ExpiresByType application/x-shockwave-flash "now plus 1 month" ExpiresByType x-world/x-vrml "now plus 1 month" ExpiresByType video/x-msvideo "now plus 1 month" ExpiresByType video/mpeg "now plus 1 month" ExpiresByType video/mp4 "now plus 1 month" ExpiresByType video/quicktime "now plus 1 month" ExpiresByType video/x-la-asf "now plus 1 month" ExpiresByType video/x-ms-asf "now plus 1 month"

Уменьшайте размер картинок.

Изображения – неотъемлемая часть сайта, и в большинстве случаев их размер может быть оптимизирован. Вот несколько способов:

  • Никогда не используйте оригинальные изображения, в этом случае браузер применит HTML-масштабирование. Помимо того, что это займет какое-то время, результат вас вряд ли порадует
  • Всегда сжимайте изображения, с которыми собираетесь работать. Существует множество программ, способных выполнить эту операцию. Помимо известного всем Adobe Photoshop есть также online-сервисы типа Smush It .

Удаляйте ненужные и не поддающиеся оптимизации расширения.

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

Зачастую разработчики тестируют различные плагины, компоненты и модули и потом забывают удалить лишнее. Возьмите себе за привычку в определенный период времени проводить уборку во «внутренностях» сайта.

Если вы все-таки намерены установить расширение, то обязательно проверьте, не упала ли скорость загрузки страницы. Бывает, что неграмотно написанные компоненты тормозят работу всего сайта.

Используйте расширения Joomla для оптимизации сайта.

Для оптимизации работы сайта доступно большое количество расширений, вот некоторые из них:

.

Вконтакте

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

Бытует мнение, что CMS Joomla 3 быстрая система. Это не совсем так. Даже «голый» сайт, то есть сайт без установленных сторонних расширений, без страниц и без модулей грузится более 2-х секунд. Причем, включение/ выключение кэширования на таком сайте не на что не влияет. Например, если провести анализ скорости загрузки пустого сайта Joomla 3, с включенной и отключенной функцией кэширования, время загрузки будут отличаться на 0,1-0,2 секунды.

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

Три вида кэширования Joomla, три типа кэша Joomla

В Joomla предусмотрено три основных типа кэша, настройки, которых доступны из административной панели . Разделяются типы кэша по объектам кэширования, а именно:

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

Как видите, по доступности кэширования, типы кэша можно объединить в две группы:

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

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

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

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

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

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

Пора посмотреть, где включаются и настраиваются типы кэша Joomla 3.

Как включить и настроить Кэш страниц, модулей и компонентов Joomla 3

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

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

Кэширование страниц сайта включается на вкладке: Расширения→Менеджер плагинов→Система-Кэш .

Права доступа пользователей к управлению кэш настраиваются на вкладке: Система→Общие настройки→Менеджер кэша .

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

class="eliadunit">

Кэширование модулей сайта и кэширование представлений компонентов

Кэширование модулей сайта и кэширование представлений компонентов работают параллельно и включаются на вкладке: Система→Общие настройки→Система→Настройки кэш . Здесь всё просто и сложно одновременно:

В пункте «Кэш» вы можете не только включить/отключить кэш сайта, но и выставить его уровень. Есть два уровня кэширования:

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

Время жизни кэша

Время жизни кэша, это время в минутах или секундах (для модулей Joomla), сколько сохраненная копия будет лежать в папке «cache» в корне сайта. Здесь совет не уникален, выставите время жизни кэша по сроку обновления вашего сайта. Если статьи или новости появляются на сайте ежедневно, то ставьте время общего кэширования 1440 (минут=24 часа). Это непринципиальный пункт настроек, потому что, вы всегда сможете очистить кэш вручную, на вкладке Система→Общие настройки или по FTP соединению вручную вычистив папку cache (все кроме, файла index.php).

Отдельное кэширование модулей

С модулями не все просто. В системе есть статические и динамические модули. Например, модуль меню в виде списка это статический модуль, а модуль меню в виде выпадающих пунктов меню, это модуль динамический. К динамическим модулям относятся все модули, которые меняются со временем.

Правило простое, статические модули кэшируем, часто меняющиеся модули, кроме модулей JavaScript (реклама AdSense) не кэшируем. Но и здесь не все просто: если вы включили прогрессивное кэширование, то страница вместе со всеми модулями «потянется» из кэша, и выставленное значение в настройках модуля «Не кэшировать» учитываться не будет. Выход простой. Ставим время кэширования динамического модуля несколько минут. Кстати, по умолчанию все время кэширования выставлено 900 секунд, и, вполне, может не перестраиваться. А вот настройка кэширования для модуля «По умолчанию» (Создать модуль→Дополнительные параметры→Кэширование→По умолчанию), означает, что будет использована настройка кэша в «Общих настройках»: Система→Общие настройки→Система→Настройки кэш.

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

Итоги

Как и на всех CMS настройка кэширования дело хлопотное, но нужное, если есть желание попасть в топы выдачи.

Выводы

  • Включить кэширование на Joomla 3 нужно обязательно.
  • Установите время кэширования в соответствии со временем обновления на сайте;
  • Настройте кэш таким образом, чтобы было возможно отключить кэширование динамических модулей;
  • Какой тип кэширования включить решать вам: поэкспериментируйте, на готовом сайте, с различными комбинациями включения выключения видов кэширования. У меня минимальная скорость загрузки получается при выключенном плагине кэширования страниц и включенном Прогрессивном кэшировании с жизнью кэша 10080 минут.

И последний совет: Если удалили весь кэш, например, после изменения внешнего вида сайта или какого-либо редактирования, для его восстановления, как минимум зайдите на главную страницу сайта, а как максимум прогоните сайт, через любой генератор sitemap.

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

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

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

Но обо всем по порядку.

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

Так вот, у меня есть сайт тоже на Joomla, посещаемость которого с августа по ноябрь увеличилась на треть и сейчас в среднем составляет 15 000 посетителей в сутки. Этот сайт крутится на виртуальном сервере (VPS) на хостинге reg.ru на тарифном плане VPS-3. Этот VPS оснащен процессором 2х2000 Мгц и оперативной памятью в 1024Гб. Хостинг очень хороший и стабильный, я про него думаю написать отдельную статью. Так вот в последний месяц из-за резкого увеличения посещаемости мне на почту стали периодически (по несколько раз в день) приходить уведомления о нехватке оперативной памяти на моем VPS. Меня конечно эти уведомления напрягали, но так как сайт при этом продолжал нормально открываться, то я откладывал решение данной проблемы. Неделю назад сайт во время уведомлений о нехватке памяти начинал жутко тормозить. А затем в один прекрасный день сайт все таки перестал открываться совсем по причине того, что упал сервер баз данных MySQL из-за нехватки оперативной памяти. Я его конечно тут же стартовал из панели ISP менеджера. В итоге с момента падения SQL сервера и до момента как я это заметил и стартовал сервер MySQL сервер прошло примерно тридцать минут. Заняться сайтом в этот день у меня так и не получилось, а вечером я пришел домой усталый и решил отложить все на следующий день. Уже глубоким вечером, опасаясь, что mySQL сервер ночью снова может упасть, и сайт может до самого утра, пока я сплю, не работать, я подключил платный мониторинг сайта. Этот мониторинг отслеживает работоспособность сайта и как только он падает, высылает SMS на телефон о падении сайта. Данная услуга на сайте reg-ru стоит всего 100 руб/мес. Перед сном я положил телефон поближе, чтобы услышать SMS-ку. После полуночи все таки пришла эта SMS, оповещающая о том, что сайт снова не работал. Я быстро вскочил, включил ноутбук и запустил упавший процесс sqld, отвечающий за работу сервера баз данных mySQL. На этот раз сайт не работал всего лишь около 5 минут. Столько времени мне понадобилось, чтобы встать, включить ноутбук, зайти в ISP панель управления хостингом и запустить упавший процесс. Конечно же у меня весь сон улетучился, и я стал думать, как решить проблему с нехваткой памяти. У меня было два решения:

  1. перейти на более дорогой тариф VPS-4, на котором в два раза больше памяти (2048 МБ);
  2. попытаться оптимизировать работу сайта.

Кстати вот перечень всех тарифов на VPS сервера (можете кликнуть для получения более подробной информации):

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

Благо, в настройках сервера мне копаться не пришлось, т.к. первое, на что я решил обратить внимание при оптимизации - это посмотреть как обстоят дела с кэшированием на моем сайте. Оказывается на моем сайте не было включено кэширование. После включения кэширования в Joomla, потребление памяти на VPS сервере стало примерно в среднем 650-750 Мб. Уведомления о нехватке памяти мне перестали приходить, а страницы сайта стали открываться даже быстрее, чем раньше. Вот такая история.

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


Включаем кэширование в Joomla при помощи системного плагина.

Включить кэширование в Joomla можно двумя способами.

Первый способ это включение кэширования страниц сайта при помощи встроенного системного плагина.

В админке заходим в "Расширения " => "Менеджер плагинов " и ищем в списке плагин с названием "Система - Кэш ". Список плагинов на сайте может быть большим, поэтому для облегчения поиска отфильтруем список. Для этого слева в разделе "Фильтр " в поле "Выбор типа " выберем из выпадающего списка "System ". Теперь наши список плагинов выводит только системные плагины, среди которых легко отыскать наш плагин "Система - Кэш ".



Включаем данный плагин.

Данный плагин работает следующим образом. Когда какая либо страница сайта запрашивается браузером, Joomla сначала ищет эту страницу среди сохраненных ранее файлов в своем кэше. Если в кэше данная страница отсутствует или она присутствует, но время кэширования уже вышло, то Joomla обращается к базе данных с запросом содержимого данной страницы. Полученные из базы данные он подставляет в используемый сайтом шаблон, формирует окончательную страницу, сохраняет ее в виде файла в папке с кэшем и затем выдает HTML версию запрошенной страницы браузеру. Т.е. при первом запросе страницы сервер делает те же операции, что и при выключенном кэше и даже более того ему приходится еще сохранять страничку у себя в кэше. Но зато когда этот же браузер или браузер любого другого компьютера запрашивает эту же страничку, joomla ищет эту страничку у себя в кэше, находит ее, определяет, что время кэширования еще не вышло и сразу же выдает HTML версию данной закэшированной странички браузеру без необходимости обращения к базе данных. При этом время загрузки страницы браузером значительно ускоряется, т.к. серверу уже не нужно тратить значительное время на обращение к базе данных, ожидание полученных данных от базы и на сборку страницы.

Плагин все кэшированные странички хранит в папке корень_сайта\cache\page\.

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

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

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

У этого плагина есть дополнительная настройка "Использовать кэширование в браузере", но ее я вам включать не советую, и сейчас я объясню почему. Работает она следующим образом. Если эта настройка включена, то браузер при открытии любой страницы сайта будет дополнительно сохранять ее у себя в кэше на компьютере. В дальнейшем, когда этот браузер повторно обратиться к серверу с запросом этой же странички, то в HTTP ответе сервера всегда будет присутствовать заголовок “304 Not Modiifed”, которая говорит браузеру, что запрашиваемая страничка не изменилась на сервере и браузер может взять ее из своего кэша, если страничка сохранена в кэше (а браузеры по умолчанию настроены на сохранение страниц в кэше, если им это разрешает делать сервер). Но здесь нюанс в том, что сервер будет говорить браузеру о том, что страничка не изменилась на сервере даже в том случае, когда на сервере уже давно появилась обновленная закэшированная копия данной странички. Т.е. это означает, что браузер всегда будет обращаться к своей локально сохраненной версии странички и уже никогда не увидит изменений. Для того чтобы все таки заставить браузер загрузить актуальную версию страницы нужно будет зайти в настройки браузера и очистить локальный кэш браузера. Т.е. эта настройка нужна только для каких то совсем уж специфических сайтов, которые никогда не обновляются.


Как же узнать время, в течении которого на сервере будет храниться кэшированная копия странички. Время кэширования настраивается в совершенно другом разделе админки: "Общие настройки " (Global Configuration ) => "Система " (System ) => поле "Время кэширования " (указывается в минутах) в разделе "Настройки кэша " (Cache Settings ). Это поле регулирует время кэширования для всех способов кэширования, доступных в Joomla.


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

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

Включаем кэширование в Joomla при помощи стандартного и прогрессивного кэширования.

Общие настройки " (Global Configuration ) => далее переходим во вкладку "Система " (System ) => находим раздел "Настройки кэша " (Cache Settings ) => напротив поля "Кэш" (Cache ) выбираем из выпадающего списка "Стандартное кэширование " (Conservative caching ) или "Прогрессивное кэширование " (Progressive caching ).

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

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

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

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

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

Теперь возникает резонный вопрос: чем отличается стандартное кэширование (Conservative caching ) от прогрессивного кэширования (Progressive caching ).

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

Для этого в админке заходим в "Расширения " => "Менеджер модулей " => открываем необходимый нам модуль => Далее переходим во вкладку "Дополнительные параметры ". Здесь мы можем изменить время кэширования модуля изменив время кэширования в секундах в поле "Срок кэширования ". По умолчанию там стоит значение 900 секунд (т.е. 15 минут) или вовсе отключить кэширование модуля выбрав в поле "Кэширование " значение "Не кэшировать ".


При одновременном включении стандартного кэширования и системного плагина кэширования переопределение кэширования модулей не работает, т.к. кэширование при помощи плагина имеет приоритет.

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

Далее пришел на эту же страничку посетитель User-B => Joomla роверяет свой кэш на наличие персональной (именно для посетителя User-B) кэшированной страницы => Joomla обнаруживает в своем кэше только страницу для пользователя User-A => Joomla не выдает в браузер пользователя User-B страницу, кэшированную для пользователя User-A, а формирует для User-B новую страницу, сохраняет ее в кэше и после этого выдает ее в браузер посетителя User-B.

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

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

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

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

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

Очищаем кэш в Джумле.

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

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

Для этого в административной панели заходим в "Система " => "Очистить весь кэш ".

Выбираем все и нажимаем кнопку "Удалить ".

Решения сторонних разработчиков для кэширования сайта.

Если в силу специфики вашего сайта вам недостаточно возможностей предоставляемых встроенными в Joomla средствами, могу предложить вам очень хороший плагин под названием JotCache . Он предоставляет более гибкие настройки механизма кэширования:

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

Вы можете помочь проекту, рассказав о нем в социальных сетях:

Сегодня я вас научу, как ускорить свой сайт на Joomla с помощью кэширования . Чтобы настроить кэширование для сайта нужно перейти в «Общие настройки».

Затем вкладка «Система» и здесь есть настройки кэша. Сейчас у нас по умолчанию кэширование отключено. Чтобы его включить, нужно сначала выбрать стандартное или прогрессивное кэширование. Сразу скажу, что при прогрессивном кэшировании сайт будет работать быстрее, выбираем его. Обработчик - файл и время кэширования 15 минут.

Что такое кэширование? В течение 15 минут вас сайт не будет изменяться. Не будет каждый раз показываться новые улучшения сайта, только каждые 15 минут. Поэтому выбирая это время, смотрите, насколько часто ваш сайт обновляется. Если у вас какой-то новостной портал, который должен обновляться каждые 5 минут, вы ставите кэширование меньше. Если у вас обыкновенный сайт, то 15 минут это будет оптимальный вариант.

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

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

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

Есть такой интересный сайт, как http://www.nonumber.nl/. Это разработчик расширений для Joomla, у него много бесплатных расширений. Перейдем на Extensions и найдем здесь Cache Cleaner .

Есть два варианта - бесплатно скачать или купить за 10 евро. Мы скачиваем бесплатный.

Затем переходим в административную панель и его установим. Установилось все нормально и сразу предупреждение: «Пожалуйста, очистите кэш вашего Интернет-обозревателя». Потом необходимо включить этот плагин в «Менеджер плагинов.

Давайте разберем настройки. «Автоочистка при сохранении» - если мы сохраняем какое-то изменение на сайте, у нас автоматически будет удаляться кэш. Есть «Панель управления», разрешить это делать или уведомлять. Также на «Лицевой части сайта» мы можем разрешить и уведомлять, тоже самое. «Очищать при действии». Когда очищать кэш, когда мы сохраняем, когда мы применяем - save, apply . То есть нам не нужно будет каждый раз удалять кэш, он будет автоматически удаляться.

Также «Очистка других каталогов» - tmp . Если мы загружаем расширение через папку tmp, также она будет очищаться. И «Автоочистка при сохранении» только на версии PRO, каталоги например. Тоже «Очистка таблиц и базы данных», только PRO. Если нам это очень сильно нужно мы покупаем PRO за 10 евро. Дополнительные параметры: «Отображение размера кэша» - будет показываться размер кэша.

И после сохранения появляется такая кнопка «Очистить кэш». Можем сами нажимать на нее и будет нам показываться сколько Кб кэша удалили или мы можем настроить не показывать ее. Если на «Лицевая часть сайта» ставим «нет», то показываться не будет.

Всем привет. В этой статье будем разбираться в кэшировании CMS Joomla и все что с ним связано, но для начала давайте определим, что же это такое.

Определение кэширования

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

Настройка кэширования в Joomla

Перед настройкой кэша в Joomla, сначала нужно убедиться, что включен плагин кэширования, для этого переходим в «Расширения », затем «Менеджер плагинов », через форму поиска ищем «Система – Кэш » и включаем ее (если была отключена).

Теперь переходим непосредственно к самой настройке, для этого переходим в «Система », далее в «Общие настройки » и в вкладку «Система », после «Параметры отладки » видим «Настройки кэша »

В выпадайке «Кэш » есть три варианта выбора:

    • Кэширование отключено;
    • Стандартное кэширование;
    • Прогрессивное кэширование;

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

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

Очистить кэш в Joomla достаточно просто, для этого переходим в «Система » и «Очистить весь кэш »

Использование кэша браузера Joomla

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