gpt4 book ai didi

amazon-web-services - 图像上的 S3 cloudfront 到期 - 性能非常慢

转载 作者:行者123 更新时间:2023-12-01 05:12:21 24 4
gpt4 key购买 nike

我最近开始在 cloudfront CDN 上提供我的网站图像,而不是 S3,我认为它会更快。它不是。事实上,它要慢得多。经过大量调查,我被暗示在图像对象上设置到期日期是关键,因为 Cloudfront 将知道将缓存的静态内容保留多长时间。说得通。但是 AWS 对此的记录很差,我无法弄清楚如何更改到期日期。人们说“您可以在 aws 控制台上更改此设置”请显示我是多么愚蠢,因为我看不到这一点。已经做了几个小时了。不用说,我对在这个问题上摸索感到非常沮丧。无论如何,任何尽可能小的提示都会很棒。我喜欢 AWS 以及 Cloudfront 的 promise ,但到目前为止,情况并非如此。

编辑附加细节:
为每个答案添加了到期日期标题。就我而言,我没有标题。我的假设是,我提供图像的 Cloudfront 性能缓慢与标题中没有过期有关。设置了屏幕截图所示的到期日期并在答案中进行了描述,我发现性能没有明显差异(从没有标题到仅添加到期日期)。我的网站平均需要 7 秒才能加载 10 个核心图像(每个 <60Kbs)。这 10 个图像(通过 cloudfront 提供)占加载时间延迟的 60-80% - 取决于所使用的性能工具。鉴于在我的 VPS 上提供文件的速度更快,显然有些问题。鉴于有这么多人使用它,我不想断定 cloudfront 是问题所在,而且我不想脱离 EC2 和 S3,但现在测试 MAxCDN 显示出更好的结果。我将在接下来的 24 小时内继续测试,但我的结论是到期日期标题只是一个令人困惑的细节,没有任何有利影响。希望我是错的,因为我想将其全部保留在 AWS 家族中。也许我在到期日的事情上咆哮了错误的树?

最佳答案

在将文件上传到 S3 时,您需要在元数据中设置它。 This article描述了如何实现这一目标。

到期日期的格式是 RFC1123 日期,格式如下:

Expires: Thu, 01 Dec 1994 16:00:00 GMT

将此设置为一个遥远的 future 日期将使像 CloudFront 这样的缓存能够长时间保存文件,并在这种情况下加快交付速度,因为单个边缘位置(遍布全局的服务器为 CloudFront 交付内容)已经拥有数据和不需要一次又一次地获取它。

即使有很远的过期 header ,对象的第一个请求也会很慢,因为边缘位置必须先获取一次对象,然后才能从缓存中提供它。

交替 您可以省略 Expires标题和使用 Cache-Control反而。 CloudFront 也会理解这一点,并且您在到期时更加灵活。在这种情况下,您可以例如声明从边缘位置对对象发出的第一个请求开始,对象应该保留一天:
Cache-Control: public, max-age=86400

在这种情况下,时间是使用秒而不是固定日期给出的。

关于amazon-web-services - 图像上的 S3 cloudfront 到期 - 性能非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com