首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Cloudfront 0最小TTL意义和成本

问AWS Cloudfront 0最小TTL意义和成本
EN

Stack Overflow用户
提问于 2019-03-29 08:16:54
回答 1查看 594关注 0票数 1

我读到Cloudfront现在支持将0设置为最小TTL,我想知道它是如何工作的,它是否会影响Cloudfront/ AWS S3的成本?

Cloudfront如何知道js或css文件何时发生了更改?我们在部署期间将新文件上传到S3。我不知道修改时间是否正确,但我认为是正确的。

主要问题是,将其设置为0或保持5分钟是否更便宜,并在部署后在Cloudfront中执行js/css无效操作。有时候,当我们只进行后端更改时,我们就不需要失效了。不过,大多数情况下,css/js也会发生变化。

EN

回答 1

Stack Overflow用户

发布于 2019-03-29 15:25:58

Minimum TTL很少需要定制。

Minimum TTL确实是,而不是定义了CloudFront缓存对象的最短时间。听起来就是这样,但这是一个常见的误解。

为了澄清这一点,让我先澄清一下TTL。

TTL (time-time)是CloudFront在内部为每个单独的对象计算的值,目的是确定是否应该缓存对象,以及缓存中找到的对象是否仍然是新鲜的。如果一个对象在缓存中的时间少于它的TTL,则说它是新鲜的,否则它就说是陈旧的。

一个新的对象可以在不检查原点的情况下提供给查看器。

一个陈旧的对象应该被提供给查看器,而不是,而不是,而不需要验证它的起源,并且最终应该被清除。

CloudFront可能会在缓存中保留陈旧的对象一段时间。(它可以使用条件请求与原点验证陈旧对象是否仍然良好。它还可以在有限的条件下继续使用陈旧的对象,包括中断您的起源)。

CloudFront也可以随时从缓存中清除新对象。它为什么要这么做?缓存空间是免费的,所以如果没有请求,CloudFront缓存的所有内容都不能继续存储在缓存中。CloudFront可以随时从缓存中清除“不受欢迎”的对象。

由此可以看出,TTL是而不是“CloudFront将缓存对象多长时间?”而是“CloudFront将考虑缓存的对象多长时间是新鲜的?”

如果一个对象的计算TTL为0,CloudFront将不会缓存该对象。

所以..。对象如何得到计算出的0 TTL?在响应中至少有一个来自原点的头:

代码语言:javascript
复制
Cache-Control: private
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: s-maxage=0
Cache-Control: max-age=0   // ignored when s-maxage is present

这是Minimum TTL通常可以发挥作用的唯一情况。(而且,Expires HTTP报头可以触发它,但不要使用Expires --使用Cache-Control)。

Cache-Control --如原始服务器返回的--主要用于浏览器,但CloudFront在试图为每个对象计算适当的TTL时也会观察到它。

Minimum TTL在值CloudFront上建立了一个较低的边界,CloudFront将从原点的Cache-Control标头中推断出上述条件,并将较小的值舍入。如果您的原点返回(例如) Cache-Control: private, no-cache, no-store,那么应该是0.但是CloudFront将该对象的内部TTL设置为,0或Minimum TTL的值越大。

如果响应有(例如) Cache-Control: max-age=15,那么浏览器和CloudFront都会计算15秒的TTL。如果(例如) Minimum TTL设置为300,那么CloudFront将忽略原点指定的15秒,并将对象的内部TTL设置为300秒。浏览器仍将使用15秒,因为CloudFront不修改Cache-Control响应头。

tl;dr:Minimum TTL是CloudFront将分配给对象的最小内部TTL值,而不管原点响应中的值会导致它计算一个较低的值。将此设置从默认值0更改为高级选项。它没有设置CloudFront缓存对象所需的最短时间。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationDownloadDist

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55413094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档