【问题标题】:why is my cloudfront caching not working?为什么我的云端缓存不起作用?
【发布时间】:2016-03-11 12:53:06
【问题描述】:

好的,所以当我运行 Google Page Tools 时,我注意到我的 Cloudfront 没有缓存,它告诉我我的图像没有设置过期时间。我通过 Cloudfront 使用 Amazon S3。 S3 上没有设置标题,因为我有数百个文件夹和数千个图像文件,每小时都会上传新文件。

我去了我的 Cloudfront 控制台,进入行为,编辑那里唯一的一个并设置:

Minimum TTL: 86400
Maximum TTL: 31536000
Default TTL: 86400

我检查了“对象缓存”的“自定义”选项。然后我去使我的所有对象无效并无效(*)。我一直等到它完成,但请求文件时我的标题仍然显示:

Age:8
Connection:keep-alive
Date:Mon, 07 Dec 2015 00:44:39 GMT
ETag:"429d87a5fd35288d207635d2a853fa0b"
Server:AmazonS3
Via:1.1 (my-ID-here).cloudfront.net (CloudFront)
X-Amz-Cf-Id:RxHlfhhnrSk9YwIqpFySnPVrscndnknZ9RKlIryXCLwh4RCK9vK6Vw==
X-Cache:Hit from cloudfront

我做错了什么?

【问题讨论】:

  • 响应标头 X-Cache: Hit from cloudfrontAge: 8 表明 CloudFront 正在为您缓存内容。是什么让你认为不是?当您将对象上传到 S3 时,您应该在对象上设置 Cache-Control: 标头,但这是次要问题。

标签: caching amazon-s3 amazon-cloudfront


【解决方案1】:

这是在“利用浏览器缓存”还是页面工具的类似部分下?

如果在“利用浏览器缓存”下, - 这并不意味着文件没有被缓存,而是意味着请求的文件没有请求最终用户浏览器缓存它们 - 例如使用“缓存 -控制”或“过期”标题。 CloudFront,除非另有配置,否则会缓存来自 S3 的文件——因此这些标头的缺失不会影响 Cloudfront 的缓存。

您可以在 S3 中为各个对象手动添加这些。 更多信息可以在CloudFront documentation

中找到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2021-05-09
    • 2011-09-04
    相关资源
    最近更新 更多