Lar*_*aes 4 dns amazon-s3 amazon-ec2 amazon-web-services
我们希望尽快在我们的应用程序上托管图像。由于我们已经有了 AWS 设置,因此我们更愿意将图像托管在 S3 存储桶上(但也有其他选择)。
挑战是将请求路由到最近的 S3 存储桶。现在,我们使用带有地理位置路由策略的 Amazon Route 53 来关闭重定向到相应存储桶的 EC2 实例。我们发现这在请求时效率很低:origin->DNS->EC2->S3,并且更喜欢origin->DNS->S3。是否可以将两个静态网站 S3 存储桶绑定到基于地理位置路由请求的同一个域?
Ps:我们已经研究过cloudfront,但由于许多图像是动态的,并且只能查看一次,我们希望原点尽可能靠近用户。
这是不可能的。
为了使 S3 存储桶作为静态网站提供文件,存储桶名称必须与正在浏览的域匹配。由于这一限制,同一域不可能有多个存储桶提供文件,因为即使在不同区域,您也无法创建多个具有相同名称的存储桶。
CloudFront 可用于提供来自 S3 存储桶的文件,并且这些 S3 存储桶的名称不需要与域匹配。所以乍一看,这可能是一个解决方法。但是,CloudFront 不允许您为同一域创建多个分配。
不幸的是,截至撰写本文时,无法从 S3 存储桶进行地理定位。
编辑以获得更深入的解释:
您的域的 DNS 条目是 CNAME、A 记录还是别名都无关紧要。限制是在S3端,与DNS无关。
CNAME 记录将解析example.com为s3.amazonaws.comtox.x.x.x并且连接将建立到 S3。但您的浏览器仍会发送example.com标Host头。
当 S3 为网页提供文件时,它使用HostHTTP 请求中的标头来确定应从哪个存储桶提供文件。这是因为 S3 有一个 HTTP 端点。因此,就像您自己的 Web 服务器托管来自同一服务器的多个网站一样,它使用标Host头来确定您真正想要哪个网站。
一旦 S3 获得了Host您想要的数据,它就会将其与可用的存储桶进行比较。它决定使用存储桶名称来匹配Host标头。
| 归档时间: |
|
| 查看次数: |
1373 次 |
| 最近记录: |