1

我想完全脱离 S3 + Cloudfront 运行我的网站。每个页面都是一个 .html 文件,每天可以用新内容更新/覆盖一次或两次。我选择了这种架构来减少加载时间。

我的网站包含大约 100 个 .html 文件。我有一个 cronjob,它每天可能更新 15 - 20 个文件,因为新数据被添加到我的数据库中。主页 (index.html) 可能会更频繁地更改。

如果有更新,是否可以始终确保浏览器始终接收我的站点的最新版本的文件(而不是从浏览器缓存中),同时保留相同的 URL(例如,/index.html、/category/product-name.html) ?

4

1 回答 1

1

事实证明,您可以告诉 Cloudfront 遵守其原始标头。因此,假设您将文件上传到充当 Cloudfront 源的 S3 存储桶。可以设置一些headers,如下

Cache-Control:no-cache no-store max-age=0 must-revalidate
Expires:0

上传时,Cloudfront 将尊重这些。

我将 test.html 文件上传到 S3,在我的 Cloudfront 域上查看它,然后在我将新版本上传到 S3 后,新版本立即在 Cloudfront 上可用。Cloudfront 将上述标头发送到浏览器,因此浏览器遵循缓存规则。

但是,似乎在 Cloudfront 上访问文件的平均延迟可能会随着这些标头的到位而增加。最初,延迟平均约为 90 毫秒 - 100 毫秒,而使用标头时,延迟约为 110 毫秒。考虑到正常运行时间、托管费用和 110 毫秒的好处,这没什么大不了的。

于 2013-08-23T18:09:22.930 回答