Cloudfront无法在几天内可靠地存储图像

时间:2014-07-23 15:15:58

标签: image amazon-web-services cdn amazon-cloudfront

我有一个动态生成电子商务网站图像的网络服务器,我在此服务器前设置了Amazon Cloudfront,以缓存图像请求,以减少我自己服务器的负载。

我发现在任何一天,图像(当天一次加载一次)都是从cloudfront提供的。 e.g:

enter image description here

问题是图像 正在重新生成(Cloudfront缺少我的图像,需要从我的服务器请求它)每天,cloudfront似乎忽略了我在我定义的'max_age'拥有自己的服务器并选择24小时的默认值。这是服务器“背后”云端的响应:

enter image description here

根据我发送的回复,云端是否有理由忽略我的“最大年龄”值?为了增加额外的激怒,它可以保留一些图像超过24小时,但不会超过几天。

1 个答案:

答案 0 :(得分:1)

这可能是Amazon CloudFront关于对象过期的操作的工件,请参阅Specifying How Long Objects Stay in a CloudFront Edge Cache (Expiration)

  

通常,CloudFront从边缘位置提供对象,直到   对象到期。到期后,下一次边缘位置到达   对于该对象的最终用户请求,CloudFront将请求转发给   原始服务器验证缓存是否包含最新版本   对象:

     
      
  • 如果CloudFront已有最新版本,则原点仅返回304状态代码(未修改)。

  •   
  • 如果CloudFront没有最新版本,则原点返回200状态代码(OK)和最新版本的对象。

  •   
     

如果不经常请求边缘位置的对象,   CloudFront可能会驱逐对象 - 删除对象之前的对象   到期日期 - 为更受欢迎的对象腾出空间。 [强调我的]

不经常的对象访问也可以解释为什么它可以保留一些图像超过24小时,但绝不会超过几天。这可以通过CloudFront Access Logs中缺少条目来证明,因此如果您不肯定经常请求这些文件,检查日志可以得出明确的答案。