为什么Cloudfront会在几小时内从缓存中驱逐对象?

时间:2015-09-30 18:44:06

标签: image caching amazon-cloudfront

Cloudfront配置为缓存来自我们应用的图片。我发现这些图像很快就从缓存中逐出。由于图像是动态生成的,因此对于我们的服务器来说这是非常激烈的。为了解决这个问题,我设置了一个测试用例。

Origin标头

图片由我们的原始服务器提供,并带有正确的Last-ModifiedExpires标题。

origin headers

Cloudfront缓存行为

由于该网站仅为HTTPS,因此我将Viewer Protocol Policy设置为HTTPSForward Headers设置为NoneObject Caching设置为Use Origin Cache Headers

cloudfront cache behaviour settings

初始图像请求

我在11:25:11请了一张照片。这返回了以下状态和标题:

  • 代码:200(OK)
  • 缓存:否

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • 最后修改日期:2015年9月30日星期三09:24:31 GMT
  • X-Cache:来自云端的小姐

initial request headers

后续请求

稍后重新加载(11:25:43)会返回图像:

  • 代码:304(未修改)
  • 缓存:是

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • X-Cache:从云端点击

subsequent request headers

几小时后的请求

将近三个小时后(14:16:11)我去了同一页面,图片载满了:

  • 代码:200(OK)
  • 缓存:是

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • 最后修改日期:2015年9月30日星期三09:24:31 GMT
  • X-Cache:来自云端的小姐

enter image description here

由于图像仍然被浏览器缓存,因此它会快速加载。但我无法理解Cloudfront如何无法返回缓存的图像。因此,应用程序必须再次生成图像。

我读到Cloudfront在闲置几天后会从其缓存中驱逐文件。如上所述,情况并非如此。怎么会这样?

0 个答案:

没有答案