我对 CDN 的世界还不太熟悉。我还在运营一个国际网站,我们希望有一天该网站的流量会很大,但目前流量还很有限。该网站使用 CDN 后面的图像调整器来提供大多数图像。
问题是我们从 Cloudfront 获得了很多遗漏(约 25%),但我不清楚为什么 - 由于没有新照片或新尺寸,我认为几乎永远不应该调用原点。
一开始 origin 没有发送到期时间,4 月 8 日我添加了一周到期时间,但没有效果。
为什么 origin 查询如此频繁?
答案1
首先,我假设您有一个自定义来源,并且它是一个像 nginx 这样的 Web 服务器,它使用“expires 1w”这样的设置来提供文件。另外请注意,您收到的流量也可能会影响命中与未命中的比率。
首先,您需要了解 Cloudfront 如何看待从您的来源提供的对象。我使用 Chrome Devtools 加载对象并查看标头(F12,重新加载浏览器,单击“网络”选项卡,单击资产,查看“标头”子选项卡)。您可能会看到类似这样的内容,我已将其修剪为相关字段:
Age: 1091
Cache-Control:max-age=604800
Cache-Control:public
Date:Thu, 10 Jul 2015 19:35:35 GMT
Expires:Thu, 17 Jul 2015 19:35:35 GMT
Last-Modified:Tue, 16 Jun 2015 18:00:59 GMT
X-Cache:Miss from cloudfront
类似上述情况意味着 Cloudfront 每周都会检查新内容,这正是您想要的。但是,如果您看到不同的最大使用期限,或者日期和到期日期之间的日期范围更长或更短,则 Cloudfront 会通过不同的时间表进行检查,这可能会导致更多调用回您的源。
如果是这种情况,我的第一个想法是,您说您最初有一个不同的到期时间,但后来将其更改为一周。我相信,如果您更改原点的到期时间,但至少不“触摸”文件以更新其修改日期,Cloudfront 将不会使用您的新到期时间进行更新。您可以将其设置为 1 年,但如果资产仍与以前相同,Cloudfront 将继续检查它们最初加载时的到期时间。