2017-02-12 94 views
1

AWS CloudFront默认缓存行为允许自定义最小TTL,最大TTL和默认TTL值。我反复浏览文档,但无法理解默认TTL和最大TTL之间的实际差异。例如,如果我在默认TTL中提供24小时(以秒为单位),那么我在Max TTL中应用的不同持续时间会发生什么情况?AWS CloudFront最大TTL和默认TTL缓存行为差异

回答

4

从我所看到的:

  • 默认时使用的高速缓存控制头不提供高速缓存持续时间
  • 最大可以通过实施更短的缓存时间重写缓存控制头

例如,如果应用程序通过标头将缓存持续时间设置为90分钟,但最大TTL设置为6 0分钟,CloudFront将缓存6​​0分钟。

查看文档:Specifying How Long Objects Stay in a CloudFront Edge Cache (Expiration)

+0

很好回答 –

0

啊,只是添加到@约翰Rotenstein的回答是:

敏TTL最大TTL只需设置范围的的Cloudfront将允许请求头改变TTL 。如果没有通过头部,将使用默认TTL。

你可以看到每个在这里的定义是: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesMinTTL

在实践中,我们发现,缺省TTL并不总是得到,如果没有传递设置。因此,最好发送Control max-age(或Expires)或Cache-Control s-maxage标头以确保对象获得正确时间的缓存。或者您可以将Min TTL和默认TTL设置为同一时间。

另一件事要记住(从文档):

如果配置CloudFront的所有标题转发给您的原点 缓存行为,CloudFront的从不缓存关联对象。