AWS CloudFront默认缓存行为允许自定义Min、最大TTL和默认TTL值。我反复阅读了这些文档,但无法理解默认TTL和最大TTL之间的实际区别。例如,如果我在默认的TTL中给予24小时(以秒为单位),那么我在Max中应用的不同持续时间会发生什么呢?
发布于 2017-02-12 02:10:29
从我所看到的:
例如,如果应用程序通过报头将缓存持续时间设置为90分钟,但最大TTL设置为60分钟,则CloudFront将缓存60分钟。
见文档:指定对象在CloudFront边缘缓存中停留的时间(终止)
发布于 2017-02-12 03:34:38
是的,我想补充一下约翰·罗滕斯坦的回答:
Min TTL和Max TTL只是设置Cloudfront允许请求头更改TTL的范围。如果没有传递标头,则将使用默认的TTL。
您可以在这里看到每一个的定义:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesMinTTL
在实践中,我们发现如果没有任何传递,默认的TTL并不总是被设置。因此,很好的做法是发送Control age(或过期)或Cache-Control s-maxage报头,以确保对象被缓存的时间是正确的。或者您可以将Min TTL和默认TTL设置为同时。
另一件需要记住的事情(从文档中):
如果将CloudFront配置为为缓存行为将所有头转发到源,则CloudFront从不缓存关联对象。
发布于 2021-06-23 08:45:47
默认缓存TTL:它将在请求中没有显示头部时应用。通常我们都喜欢这样。这是24小时,我们可以定制,如果我们需要。如果默认的TTL是24小时: 24小时对象在CloudFront缓存中,然后CloudFront将另一个请求转发给您的起源,以确定该对象是否已被更新。Max和Min Cache TTL:当出现带有缓存头的请求(访问对象)时(Control,Control,或过期)时应用。这些类似于边界值,如果请求标头的过期大于max-TTL,则将该对象过期视为max-TTL。如果任何对象请求头具有过期的(小于min),则将该过期视为min。
https://stackoverflow.com/questions/42183313
复制相似问题