托管在 Amazon S3 上的网站加载速度非常慢

Websites hosted on Amazon S3 loading very slowly

我有一个静态网站应用程序 builder.Users 可以创建他们的网站并将它们发布到他们的自定义网站 domains.I 我正在使用 Amazon S3 托管这些网站和代理服务器 nginx 将请求路由到 S3 存储桶托管站点。 我面临着加载时间 issue.As S3 特别是与任何区域都没有关联,内容完全是 HTML 理想情况下不应该有任何 delay.I 有几个 css 和不是太重的js文件。

有哪些优化技术可以提高性能?例如:将设置 headers 吗?或利用缓存帮助?我加了一张pingdom分析图供参考。

我也不能使用云端,因为当用户更新图像时,边缘位置在新图像之前有几分钟的延迟 reflected.It 不是即时更新,因此限制了我的使用。有什么改进建议吗?

您的 S3 存储桶 与特定区域相关联,您可以在创建它们时选择该区域。它们不是地理分布的。请参阅有关 S3 区域的 AWS 文档:https://aws.amazon.com/s3/faqs/

正如我们在您的屏幕截图中看到的,您的存储桶似乎位于新加坡 (ap-southeast-1)。

您的客户在亚洲吗?如果不是,您应该尝试创建更近的存储桶,以减少数据访问延迟。

关于cloudfront,如果你invalide your objects应该可以使用它,或者像tedder42建议的那样每次修改都使用新的文件名。

来自不同区域的 S3 HTTPS 访问非常慢,尤其是 TLS 握手。为了解决这个问题,我们发明了可以在网上找到的 Nginx S3 代理。 S3 作为原始源是最好的,但不是传输端点。

顺便说一下,尽量避免将您的“文件夹”作为子域,但仅指定 S3 区域(!)端点 URL 而不是长版本的端点 URL, never use https://s3.amazonaws.com

下面是减少 DNS 调用次数的一个很好的例子:

https://s3-eu-west-1.amazonaws.com/folder/file.jpg