Amazon CloudFront延迟

Ahs*_*san 29 amazon-s3 amazon-web-services amazon-cloudfront

我正在尝试使用AWS S3和CloudFront来处理我正在开发的Web应用程序.

在应用程序中,我让用户将文件上传到S3存储桶(使用AWS SDK)并通过CloudFront CDN使其可用,但问题是即使在S3存储桶中上传和准备文件大约需要一分钟或2在CloudFront CDN网址中可用,这是正常的吗?

Mic*_*bot 41

CloudFront尝试实时从原始服务器获取未缓存的内容.没有"复制延迟"或类似问题,因为CloudFront是一个直通CDN.每个CloudFront边缘位置仅了解您网站的存在和配置; 在收到请求之前,它不知道您的内容.当发生这种情况时,CloudFront边缘从源服务器获取所请求的内容,并根据需要对其进行缓存,以便为后续请求提供服务.

多数民众赞成在这里发生的问题是关系到一个有时被称为"负缓存"的概念-缓存的事实,请求将无法正常工作-这是典型的做法,以避免任何锤打就是BEING与很可能会失败请求缓存的由来无论如何.

默认情况下,当你的原点返回一个HTTP 4XX或者5XX状态码,CloudFront的缓存五分钟这些错误响应,然后为对象的下一个请求提交给你的出身,看看是否可以引起错误已经解决,请求问题对象现在可用.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html

如果浏览器或其他任何内容尝试在上传到S3之前从该特定CloudFront边缘下载文件,则S3将返回错误,并且CloudFront(在该边缘位置)将缓存该错误并记住,接下来的5分钟,再也不用再费力了.

不过不用担心 - 这个计时器是可配置的,所以如果浏览器在引擎盖下并且在你的控制之外,你应该仍然能够修复它.

您可以为CloudFront缓存的每个4xx和5xx状态代码指定错误缓存持续时间 - 错误缓存最小TTL.有关过程,请参阅配置错误响应行为.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html


要在控制台中进行配置:

  • 查看分发配置时,单击Error Pages选项卡.

  • 对于要自定义时间的每个错误,请先单击Create Custom Error Response.

  • 从下拉列表中选择要修改的错误代码,例如403(禁止)或404(未找到) - 您的存储桶配置确定S3为丢失的对象返回的代码,因此如果您不确定,请更改403然后重复该过程并更改404.

  • 设置Error Caching Minimum TTL (seconds)0

  • 保留Customize Error Response设置为No(如果设置为Yes,此选项启用错误的自定义响应内容,这不是您想要的.激活此选项超出了此问题的范围.)

  • 点击Create.这会将您带回到上一个视图,您将在其中看到Error Caching Minimum TTL刚刚定义的代码.

对于要从​​默认行为(即上面讨论的300秒保持时间)更改的每个HTTP响应代码,重复这些步骤.

完成所需的所有更改后,返回列出分发的主CloudFront控制台屏幕.等待分发状态从更改In ProgressDeployed(通常大约20分钟,以便将更改推送到所有边缘)并进行测试.