确保Amazon Cloudfront上的最新版本文件始终显示在浏览器中?

时间:2013-08-22 17:19:47

标签: cdn amazon-cloudfront

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

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

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

1 个答案:

答案 0 :(得分:1)

事实证明,您可以告诉Cloudfront尊重其原始标头。因此,假设您将文件上载到充当Cloudfront原点的S3存储桶。您可以设置一些标题,如下所示

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

在上传时,Cloudfront将尊重这些。

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

但是,似乎在这些标头到位时,访问Cloudfront上文件的平均延迟可能会增加。最初,延迟平均为90ms - 100ms,而对于标题,它大约为110ms。考虑到正常运行时间,托管费用以及110毫秒的好处,这并不是一件大事,但仍然非常快。