mod_pagespeed - Как мне установить Expires и время обновления кэша?
Я заинтересован в двух вещах:
T.1) mod_pagespeed установил значение заголовка Expires для каждого файла, кроме html,xml..., documents. Так как я могу изменить это время для каждого файла и папки? Может ли этот модуль сделать это?
Надеюсь, пример не нужен для первого задания.
T.2) mod_pagespeed обновляет каждый кэшированный файл, через 3-4 минуты он был изменен. Поэтому, если я изменяю содержимое файла, он обновляется через 3-4 минуты после обновления. Как я могу контролировать это время этим модулем?
Пример для второго вопроса:
Я сохранил изображение JPEG под названием test.jpg, обновленное в браузере так:
локальный / изображения /test.jpg
Затем я изменяю этот файл с помощью редактора изображений и снова сохраняю его. Теперь этот файл сохранен в кеше браузера и будет отображаться в браузере через 3-4 минуты. Поэтому я хочу контролировать это время для каждого файла и папки.
PS: Ребята, мне очень нужна ваша помощь! Погиб всю неделю, пытаясь решить эту проблему.
1 ответ
Немного предыстории: mod_pagespeed продлевает время жизни кеша ресурсов и добавляет уникальный хэш-код к имени ресурса, чтобы улучшить кэшируемость пользователей и, таким образом, ускорить загрузку страницы для возвращающихся пользователей.
Как вы указали, есть два разных времени жизни кэша, которые важны для mod_pagespeed.
(T.1) - время жизни кеша, установленное mod_pagespeed. В настоящее время он установлен на 1 год, и я не думаю, что его можно настроить. Но поскольку мы добавляем в URL уникальный хэш-код, вам не нужно настраивать его в большинстве случаев. Как только mod_pagespeed обнаружит, что ресурс изменился, он поместит другой URL-адрес в файл HTML и, таким образом, обновит пользовательский кэш.
(T.2) - исходное время жизни кеша ресурса (по умолчанию 5 минут). mod_pagespeed перезагружает файл всякий раз, когда он истекает, и, таким образом, вы видите это 3-4-минутное отставание. Есть несколько способов улучшить это. Лучше всего, если файлы полностью статичны, вы можете использовать ModPagespeedLoadFromFile. Когда вы используете эту директиву, mod_pagespeed будет проверять файл каждый раз, когда переписывает HTML, то есть ресурс будет обновляться мгновенно. Если вы не можете использовать LoadFromFile, вы можете явно установить более короткое время жизни кеша для ваших ресурсов в Apache. Например:
<Directory ".../foo/">
ExpiresByType image/gif "modification plus 3 minutes"
ExpiresByType text/css "modification plus 1 minute"
</Directory>
<Directory ".../bar/">
ExpiresByType text/css "modification plus 5 minutes"
</Directory>
Тем не менее, обратите внимание, что если вы сократите это время, вы будете заставлять mod_pagespeed запрашивать ресурс чаще (каждую 1 минуту для CSS-файлов в каталоге foo/ выше) и могут излишне увеличивать нагрузку на ваш сервер. Другое решение - очистить кеш mod_pagespeed во время разработки. Это может позволить вам быстро обновить сервер при разработке, но не сделает ваш сервер излишне обремененным в остальное время.