Назад | Перейти на главную страницу

Как установить заголовки управления кешем

Как мне настроить заголовки управления кешем для определенных файлов на моем веб-сервере? Я использую среду LAMP. Я не хочу устанавливать управление кешем на всем сайте, только для нескольких файлов. Я использую CloudFront для распространения контента с одного из своих доменов. Здесь нет привязки к S3. По умолчанию контент истекает через 24 часа, что нормально для большинства данных на веб-сайте, однако есть несколько страниц, для которых я бы хотел иметь ограничение кеширования только на 1 час.

Amazon CloudFront (в основном) подчиняется обычному механизму управления кешем HTTP (см. RFC 2616) как описано в Срок действия объекта Amazon CloudFront, в частности:

Вы можете указать более длительный срок действия, используя заголовок Cache-Control, Pragma или Expires. на объекте на исходном сервере. [...] CloudFront не ограничивает их максимальные значения.

Минимальный срок действия, который вы можете указать, составляет один час. Если вы укажете минимальное время менее одного часа, CloudFront будет использовать один час.

[курсив мой]

Таким образом, вам нужно будет организовать свой стек LAMP, чтобы применить желаемый Cache-Control: max-age=3600 заголовок специально для тех объектов / страниц, которые после этого будут автоматически получены CloudFront во время его исходной выборки.

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

Для отличного обзора кеширования в целом я рекомендую Марка Ноттингема. Учебник по кешированию.

К вашему сведению, приведенный выше ответ по-прежнему верен, но в одном отношении он немного устарел, поскольку Cloudfront теперь поддерживает минимальный TTL равный 0.

Руководство разработчика Amazon: срок действия1