Cloudfront 不清除缓存

Posted

技术标签:

【中文标题】Cloudfront 不清除缓存【英文标题】:Cloudfront doesn't clear cache 【发布时间】:2017-01-30 09:25:40 【问题描述】:

我有一个为 s3 存储桶提供服务的云端发行版。当我想通过分发访问“index.html”时,我有这个标题:

Age:72145
Cache-Control:max-age=63072000, public
Connection:keep-alive
Content-Length:3277
Content-Type:text/html; charset=utf-8
Date:Wed, 21 Sep 2016 03:44:37 GMT
Expires:Tue, 01 Jan 2030 00:00:00 GMT
Last-Modified:Tue, 20 Sep 2016 22:33:21 GMT
Server:AmazonS3
Vary:Accept-Encoding
Via:1.1 34a21b71f4db55f8628d1bae91bf1c7d.cloudfront.net (CloudFront)
X-Amz-Cf-Id:lZ4Zvrv7ZnpzONcKSkoayDxIPycYdi4Up7dR_XswDK-NNyM76Fipzw==
X-Cache:Hit from cloudfront
X-Con-Reuse:1

但是当我通过 S3 访问同一页面时,我有这个:

Accept-Ranges:bytes
Cache-Control:max-age=63072000, public
Content-Length:3253
Content-Type:text/html; charset=utf-8
Date:Wed, 21 Sep 2016 23:47:40 GMT
ETag:"13a78a9eb72912500ff63118d261eb47"
Expires:Tue, 01 Jan 2030 00:00:00 GMT
Last-Modified:Wed, 21 Sep 2016 22:59:40 GMT
Server:AmazonS3
x-amz-id-2:6fyAoGni4E4gZkic8t59EDfzxp2dQX9QX0Av/qlqA9P3R1sQE6zx+JhzBWOfM9zULpK0gK6lSRc=
x-amz-request-id:EB7F363ACED12957

如您所见,最后修改的日期不一样,云端提供的是旧文件。页面不一样,云端服务和旧的。

我使用/index.html 创建了一个新的缓存失效,以确保缓存是干净的,失效已完成,但我有结果。我也清除了浏览器的缓存。

这是我的来源和缓存行为:

我能做什么?

【问题讨论】:

您实际上是通过 CloudFront 按名称请求 index.html 还是只是通过转到站点的根目录来隐式提供它?如果您不按名称要求它,那么按名称使其无效当然不会做任何事情。 我所有的请求都被重定向到 /index.html。应该是一样的。 【参考方案1】:

你的配置看起来很干净,你应该尝试invalidate所有带有*的文件

【讨论】:

以上是关于Cloudfront 不清除缓存的主要内容,如果未能解决你的问题,请参考以下文章

为 CloudFront 禁用缓存

从浏览器缓存提供图像时,AWS S3 + CloudFront 会出现 CORS 错误

CentOS5.3怎么清除DNS缓存

keepAlive动态缓存及清除缓存

C# WebBrowser 控件:清除缓存而不清除 cookie

ASP 清除缓存 为啥要设置Response.Buffer = True