如何设置缓存控制标头

如何设置缓存控制标头

如何为 Web 服务器上的特定文件设置缓存控制标头?我正在运行 LAMP 环境。我不想在整个网站范围内设置缓存控制,只想为一些文件设置缓存控制。我正在使用 CloudFront 分发来自我的一个域的内容。这里没有 S3 绑定。默认情况下,内容在 24 小时后过期,这对于网站上的大多数数据来说都没问题,但是,有几个页面我希望只设置 1 小时的缓存限制。

答案1

亚马逊 CloudFront(大部分)遵循常规 HTTP 缓存控制机制(参见RFC 2616) 记录在Amazon CloudFront 对象过期, 具体来说:

您可以使用 Cache-Control、Pragma 或 Expires 标头指定更长的过期时间在源服务器上的对象上。 [...] CloudFront 不限制它们的最大值。

您可以指定的最短到期时间为 1 小时。如果您指定的最短时间少于 1 小时,CloudFront 将使用 1 小时。

[重点是我的]

因此,您必须协调您的 LAMP 堆栈以将所需的Cache-Control: max-age=3600标头专门应用于这些对象/页面,然后 CloudFront 将在随后的来源提取期间自动获取这些对象/页面。

具体如何实现取决于用于提供内容的工具/技术,例如:

关于缓存的总体概述,我推荐 Mark Nottingham 的缓存教程

答案2

仅供参考,上述答案仍然正确,但在某些方面略微过时,因为 Cloudfront 现在支持最小 TTL 为 0。

亚马逊开发人员指南:到期1

相关内容