
modxExtraCachePlugin
Время отклика сервера это значимая величина, от нее зависит количество запросов которые сервер способен обработать за короткий промежуток времени. Чтобы не создавать лишнюю нагрузку на сервер, и улучшить удобство работы с сайтом посетителям или поисковым ботам, разумно использовать систему кэширования.
Оптимизация генерации страниц MODX происходит в несколько этапов:
- По событию «OnDocFormSave» или «OnSiteRefresh» будет произведена очистка кэша одной или всех страниц. После чего в фоновом режиме произойдет запуск утилиты «wget» в режиме краулера, это необходимо для прогрева кэша.
- При наступлении события «OnWebPagePrerender», которое наступает перед отправкой страницы в браузер (когда все теги будут обработаны), плагин сохранит отрендеренную копию страницы в отдельный файл на диске.
- В момент инициализации MODX произойдет событие «OnMODXInit», в этот момент плагин проверит существование файла на диске, отдаст браузеру сохраненную копию страницы, и завершит обработку запроса.
В результате, страница будет отдана сервером за минимально возможный промежуток времени, около 80мс, практически со скоростью статики. А если на сервере установлен OPCache, то время отклика сайта может сократится до 40мс.
В плагине реализована корректная обработка заголовков HTTP: Last-Modified, If-Modified-Since, 304 Not Modified.
Очистка кэша производится через стандартное меню MODX "Управление" -> "Очистить кэш".
Актуальная версия плагина и результаты нагрузочного тестирования лежат на GitHub - modxExtraCachePlugin
Режимы работы плагина:
- enable_cache_for_logged_user по умолчанию true -
включает или отключает кэширование страниц для залогиненных в админке. - ignore_url_get_parameters по умолчанию true -
включает или отключает режим игнорирования параметров URL. - expires по умолчанию 3600 (1час) -
время устаревания ресурса, в секундах. - erase_session_keys по умолчанию true -
включает или отключает очистку сессий по ключам между запросами страниц. - session_keys массив сессионных ключей -
добавляет элементы для сохранения в кэш.