如何在 Namecheap 为 Amazon S3 设置 CNAME

Posted

技术标签:

【中文标题】如何在 Namecheap 为 Amazon S3 设置 CNAME【英文标题】:How to setup CNAME for Amazon S3 at Namecheap 【发布时间】:2012-07-14 15:48:00 【问题描述】:

我正在使用 amazon S3 托管我的一个静态网站,并希望将其链接到我的域名 (domainname.co.uk)。所以我进入了 namecheap account-all 主机记录并做了这样的事情,

但是,当我访问网站 url 时,它仍然不起作用并抛出 404。顺便说一句,在 www 选项下,我正在使用我的 S3 网址,conxxxxxxxxxxx.co.uk.s3-website-eu-west-1.amazonaws.com.

请注意末尾的点,每当我尝试保存时,Namecheap 会自动添加它,即使没有点也是如此。我不确定这是否是导致问题的原因,但它对我不起作用。

直接访问我的 AWS URL 工作正常,这意味着我的 CNAME 设置有问题。

有人知道这里做错了什么吗? Namecheap 支持也完全不知道。

【问题讨论】:

好问题,但不适合 SO。最好向网站管理员询问,IMO:webmasters.stackexchange.com 谢谢。我们可以复制这个吗? 你能解决这个问题吗? 点的意思是它被称为句号。没有它,DNS 将尝试解析 conxxxxxxxxxxx.co.uk.s3-website-eu-west-1.amazonaws.com.yourdomain.co.uk 。编辑:ps 如果没有实际的域名,真的很难解决 DNS 问题。 尾随的点标识一个完全限定的域名 【参考方案1】:

如果存储桶名称与 CNAME 匹配,您只能为 Amazon S3 使用自定义 CNAME。

例如,如果您的存储桶名为:

files.example.com

因此默认情况下可在以下位置访问:

files.example.com.s3-website-us-east-1.amazonaws.com.

files.example.com 到完整存储桶域名的 CNAME 将允许您使用自定义域。

但是,如果您的存储桶名称与您尝试定义的 CNAME 不完全相同,它将不起作用。在您的屏幕截图中,您尝试使用 www.... 作为您的 CNAME,但(已编辑的)存储桶名称不包含 www.。请注意,“确切”包括区分大小写;您的存储桶名称必须全部小写才能使 CNAME 起作用。

此功能的完整文档在这里:http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingCustomURLs


如果您想要/需要多个 CNAME,和/或与存储桶名称不匹​​配的 CNAME,Amazon CloudFront 允许您为部署指定任意 CNAME。

【讨论】:

【参考方案2】:

问这个问题已经有一段时间了,但是如果有人在亚马逊 AWS s3 存储桶中为静态网站寻找 NameCheap CNAME 设置,请参考下面的屏幕截图。 自 2019 年 7 月起,此 AWS S3 存储桶托管 + NameCheap DNS 记录的设置对我有效。

此设置用于将 AWS S3 静态网站端点指向您在 NameCheap 中的自定义域。

请注意,如果您使用的是 AWS CloudFront SSL 证书,那么您的 CNAME 记录值将是 CloudFront 域名(而不是静态网站端点)。

【讨论】:

以上是关于如何在 Namecheap 为 Amazon S3 设置 CNAME的主要内容,如果未能解决你的问题,请参考以下文章

如何在循环中获取 Amazon S3 对象?

如何在我的 pyspark 代码中访问 S3 中的 Amazon kinesis 流文件?

Amazon S3 boto - 如何创建文件夹?

Amazon s3:如何在每个新用户名之后命名一个新文件夹?

SignatureDoesNotMatch - Amazon S3 API

在 Amazon S3 中公开存储桶 [关闭]