Как мне настроить заголовки управления кешем для определенных файлов на моем веб-сервере? Я использую среду 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