Cloudfront配置为缓存来自我们应用的图片。我发现这些图像很快就从缓存中逐出。由于图像是动态生成的,因此对于我们的服务器来说这是非常激烈的。为了解决这个问题,我设置了一个测试用例。
图片由我们的原始服务器提供,并带有正确的Last-Modified
和Expires
标题。
由于该网站仅为HTTPS,因此我将Viewer Protocol Policy
设置为HTTPS
。 Forward Headers
设置为None
,Object Caching
设置为Use Origin Cache Headers
。
我在11:25:11请了一张照片。这返回了以下状态和标题:
缓存:否
到期日:2016年9月29日星期四09:24:31 GMT
稍后重新加载(11:25:43)会返回图像:
缓存:是
到期日:2016年9月29日星期四09:24:31 GMT
将近三个小时后(14:16:11)我去了同一页面,图片载满了:
缓存:是
到期日:2016年9月29日星期四09:24:31 GMT
由于图像仍然被浏览器缓存,因此它会快速加载。但我无法理解Cloudfront如何无法返回缓存的图像。因此,应用程序必须再次生成图像。
我读到Cloudfront在闲置几天后会从其缓存中驱逐文件。如上所述,情况并非如此。怎么会这样?