强制使用 CloudFront 转移最后一个HTML文件 S3
背景
我放一个静态网站 S3 从 CloudFront 最佳。 我的HTML文件有问题。
依据
http://aws.amazon.com/cloudfro ... files
:
Amazon CloudFront 使用这些Cashe Control Elements标头来确定检查此文件更新版本所需的频率。
我仍然是什么
考虑到这一点,我在我的中安装了HTML文件 S3 Bucket, 要添加以下标题:
我的第一次打电话给我
, 我看到以下响应标题 (我排除了明显的头条新闻 (例如,
), 要跟上主题:
正如你所看到的,我的
标题。 问题是,如果我更新这个文件并更新,我会得到缓存的内容 (不是最后一个文件), 我看到了 CloudFront 提供其缓存的版本,查看响应标题:
恢复 / 问题
考虑到上述情况,因为我可以实现自动获取最新版本 HTML 使用 CloudFront?
根据他常见的问题,我可以用头条新闻 Cache-Control, 但我无法做到它。
遵循以下答案
最后,我决定改变我的 www CNAME, 所以他直接指着我的篮子 S3. 然后添加了新的 CNAME 题为 «static», 表明 CloudFront.
代表着 HTML 直接从 S3, 所有链接 CSS / JS / IMG 指向 static.mydomain.com
我放一个静态网站 S3 从 CloudFront 最佳。 我的HTML文件有问题。
依据
http://aws.amazon.com/cloudfro ... files
:
Amazon CloudFront 使用这些Cashe Control Elements标头来确定检查此文件更新版本所需的频率。
我仍然是什么
考虑到这一点,我在我的中安装了HTML文件 S3 Bucket, 要添加以下标题:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Fri, 01 Jan 1990 00:00:00 GMT
我的第一次打电话给我
samplefile.htm
, 我看到以下响应标题 (我排除了明显的头条新闻 (例如,
Content-Type
), 要跟上主题:
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Date:Sat, 10 Dec 2011 14:16:51 GMT
ETag:"a5890ace30a3e84d9118196c161aeec2"
Expires:Fri, 01 Jan 1990 00:00:00 GMT
Last-Modified:Sat, 10 Dec 2011 14:16:43 GMT
Server:AmazonS3
X-Cache:Miss from cloudfront
正如你所看到的,我的
Cache-Control
标题。 问题是,如果我更新这个文件并更新,我会得到缓存的内容 (不是最后一个文件), 我看到了 CloudFront 提供其缓存的版本,查看响应标题:
X-Cache:Hit from cloudfront
恢复 / 问题
考虑到上述情况,因为我可以实现自动获取最新版本 HTML 使用 CloudFront?
根据他常见的问题,我可以用头条新闻 Cache-Control, 但我无法做到它。
遵循以下答案
最后,我决定改变我的 www CNAME, 所以他直接指着我的篮子 S3. 然后添加了新的 CNAME 题为 «static», 表明 CloudFront.
代表着 HTML 直接从 S3, 所有链接 CSS / JS / IMG 指向 static.mydomain.com
没有找到相关结果
已邀请:
3 个回复
二哥
赞同来自:
您可以研究这些其他头条新闻是否用于控制Cashem,了解您是否会给您要找的结果 - 你可能只需要 max-age. 你可能想要 Cloudfront 检查一下 S3, 看该文件是否已更改 HTML. 如是, Cloudfront 可以得到并返回一个新文件。 否则,他可以从现有的缓存服务客户端 (节省带宽 S3 并使客户端更快地提供服务).
一个任务 Cloudfront - 服务缓存内容,是的,但现在它打开有时更改的内容,但如果它没有更改,可以缓存。
P.s. 请求行也在合作 Cloudfront (如果您为相关来源配置了“行为” - 另一个新功能), 但是,某些代理服务器仍可能无法缓存具有查询字符串的任何文件。
开发人员指南 Amazon: 有效性
http://docs.amazonwebservices. ... .html
风见雨下
赞同来自:
这个问题的最佳方法 - 升级页面时更改文件名 - 它将力量 Cloudfront 删除新内容。 再次,请记住 Cloudfront 通常用于多媒体文件。 (包括图像) 和 style / javascript - 而不是很多 html. 实质上,您的HTML代码将是 S3, 和你的图像 - 在 Cloudfront - 凭借您所做的任何更改,您可以更改文件的名称 Cloudfront (例如, file-v1.jpg, file-v2.jpg 等等。). 另一种常见的方式 - 使用版本信息启用查询字符串。
还要记住 Cloudfront 不适用于压缩 gzip 内容,它可以导致比通常的服务器慢的响应较慢 (虽然在你的情况下 S3 也不识别浏览器支持 gzip).
最后,如果您愿意,您可以使用取消强制 Cloudfront 拒绝您现有的副本并从源服务器获取新的副本。 但是,请注意 Cloudfront 只给你一个 1000 每月免费取消,之后成本是 0,005 美元取消。
最短的时间 Cloudfront 将存储内容 -
http://aws.typepad.com/aws/201 ... .html
, 虽然安装了默认值 24 小时。 因此,我会尝试安装 max-age 至少在上面 3600. 考虑标题 s-maxage (一般来说,即加工的内容). Amazon 推荐
http://www.mnot.net/cache_docs/
Keching教科书。
曾是
https://forums.aws.amazon.com/ ... 77954
有了这个,几天前修正了
小姐请别说爱
赞同来自:
您可以做更新对象的一件事, - 它使它无效。 按照下面的链接获取更多信息。
http://blog.cloudberrylab.com/ ... .html