gpt4 book ai didi

amazon-web-services - 基于地理位置的一个域到多个 s3 存储桶

转载 作者:行者123 更新时间:2023-12-04 08:16:18 24 4
gpt4 key购买 nike

我们希望尽快在我们的应用程序上托管图像。因为我们已经有了 AWS 设置,所以我们更愿意将我们的图像托管在 S3 存储桶上(但对替代方案开放)。

挑战在于将请求路由到最近的 S3 存储桶。现在我们使用具有地理定位路由策略的 Amazon Route 53 来关闭重定向到相应存储桶的 EC2 实例。随着请求的进行,我们发现这是低效的:origin->DNS->EC2->S3 并且更喜欢来源->DNS->S3。是否可以将两个静态网站 S3 存储桶绑定(bind)到基于地理位置路由请求的同一域?

Ps:我们已经研究过 cloudfront,但由于许多图像是动态的并且只被查看一次,我们希望原点尽可能靠近用户。

最佳答案

这是不可能的。

为了让 S3 存储桶作为静态网站提供文件,存储桶名称必须与正在浏览的域相匹配。由于这一限制,不可能有多个存储桶为同一域提供文件,因为您不能创建多个同名存储桶,即使在不同区域也是如此。

CloudFront 可用于提供来自 S3 存储桶的文件,而这些 S3 存储桶的名称不需要与域匹配。所以乍一看,这可能是一种解决方法。但是,CloudFront 不允许您为同一域创建多个分配。

很遗憾,在撰写本文时,无法从 S3 存储桶进行地理定位。

编辑以获得更深入的解释:

您域的 DNS 条目是 CNAME、A 记录还是别名都无关紧要。限制在 S3 端,与 DNS 无关。

CNAME 记录会将 example.com 解析为 s3.amazonaws.comx.x.x.x 并将连接到 S3。但是您的浏览器仍会在 Host header 中发送 example.com

当 S3 为网页提供文件时,它使用 HTTP 请求中的 Host header 来确定应从哪个存储桶提供文件。这是因为 S3 有一个 HTTP 端点。因此,就像您自己的 Web 服务器托管来自同一服务器的多个网站一样,它使用 Host header 来确定您真正想要的网站。

一旦 S3 有了您想要的 Host,它就会将它与可用的存储桶进行比较。它决定使用存储桶名称来匹配 Host header 。

关于amazon-web-services - 基于地理位置的一个域到多个 s3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36718799/

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