【问题标题】:How to Alias a Domain Name or Sub Domain to Amazon S3 - Present images from subdomain如何将域名或子域别名到 Amazon S3 - 显示来自子域的图像
【发布时间】:2016-09-03 10:08:47
【问题描述】:

我在 Amazon s3 上有一个 bucket,其中包含一些 jpeg 图像。出于 SEO 目的,我想提供来自我的 子域 的图片,例如 http://images.example.com

目前我的存储桶名称看起来不像子域。它只包含像 my-images

这样的破折号

this 文章中,作者说:创建一个看起来像子域的存储桶。

那么我可以用这个存储桶名称为我的子域加上 CNAME 记录吗?

此方案也支持作者的想法:https://stackoverflow.com/a/18766082/1848929

我必须重命名我的存储桶吗?是否可以重命名存储桶?

【问题讨论】:

    标签: amazon-web-services amazon-s3 dns cname


    【解决方案1】:

    您的存储桶名称必须与您指向该存储桶的 CNAME(或别名)记录匹配。

    存储桶名称必须与 CNAME 相同

    http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

    无法重命名存储桶。在您引用的另一个答案中,我怀疑这是对“重命名”一词的随意使用,它实际上的意思是“创建一个具有不同名称的存储桶”,因为:

    创建存储桶后,您无法更改其名称。

    http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html

    因此,要将来自您的一个域的 DNS 条目直接指向存储桶,您需要一个名称匹配的存储桶。

    但是,还有一种替代方法,它不需要您更改存储桶的名称,这可能是个好主意:您可以在存储桶前面使用 CloudFront CDN。

    如果您创建 CloudFront 分配,您可以告诉 CloudFront 您打算将哪些 DNS 名称指向它,然后配置 CloudFront 以处理来自您指定的存储桶的请求——在这种情况下,存储桶的名称没有更长的时间很重要,因为 CloudFront 会自动处理主机名到存储桶的映射。

    这进一步为您提供了潜在的性能增强,可以将您的图像资产缓存到更接近您网站的常客,并允许您使用 SSL 和您的子域作为主机名(使用来自 Amazon Certificate Manager 的免费 SSL 证书)可以使用 CloudFront+S3,而不是单独使用 S3。

    【讨论】:

    • 云端是要走的路。实际上,很难想出任何缺点。
    【解决方案2】:

    您需要创建一个名为images.example.com的存储桶

    然后您需要在您的 DNS 中对其进行 CNAME。

    images.example.com -> images.example.com.s3.amazonaws.com.

    是否可以重命名存储桶?

    不,一旦创建存储桶,您就无法更改它的名称。解决方法是创建一个新存储桶并将文件复制到其中。

    【讨论】:

    • “虽然这不是必须的,但它只是看起来更好。”嗯,是的,它必须的。您不能将 CNAME 记录随机指向存储桶。存储桶名称必须与完全限定的主机名匹配。
    • 谢谢@Michael-sqlbot 我已经更正了答案。
    • 感谢您更正您的回答。 -1 删除。为了清楚起见,您可能还希望颠倒 CNAME 上的符号,因为 images.example.com -> images.example.com.s3.amazonaws.com 更准确地反映了指向什么的内容,以及 s/walk/work/,因为我假设您的意思是“解决方法。”
    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2016-06-22
    • 2011-06-29
    • 2015-10-05
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多