如何在Namecheap为Amazon S3设置CNAME

19

我正在使用亚马逊S3托管我的一个静态网站,并希望将其链接到我的域名(domainname.co.uk)。因此,我进入了Namecheap账户-所有主机记录,并进行了如下操作:

Screenshot of Namecheap control panel

然而,它仍然无法正常工作,并在访问网站URL时抛出404错误。顺便说一下,在“www”选项下,我使用我的S3 URL,如此设置:conxxxxxxxxxxx.co.uk.s3-website-eu-west-1.amazonaws.com。请注意末尾的点,这是由Namecheap自动添加的,即使没有点也是如此。我不确定这是否导致了问题,但对我来说它根本无法工作。直接访问我的AWS URL可以正常工作,这意味着我的CNAME设置有问题。有人知道我在这里做错了什么吗?Namecheap的支持也完全没有头绪。

2
这个点被称为句号,它是有意义的。如果没有它,DNS 将尝试解析 conxxxxxxxxxxx.co.uk.s3-website-eu-west-1.amazonaws.com.yourdomain.co.uk。编辑:很难在没有实际域名的情况下解决 DNS 问题。 - thefreeman
尾随的点表示一个完全合格的域名。 - Vincent De Smet
2个回答

15

如果您要在Amazon S3中使用自定义 CNAME,则存储桶名称必须与 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。


在Namecheap中,根域名能否指向S3存储桶?似乎只有当目标为IP地址时,CNAME才适用于根域名。 - Asker
没关系,事实证明可以使用ALIAS记录将Namecheap根域名指向S3存储桶。(更改传播需要几个小时,所以一开始我以为它没有起作用。) - Asker

3

虽然这个问题被提出已经有一段时间了,但是如果有人正在寻找在亚马逊AWS S3存储桶中为NameCheap CNAME进行静态网站设置,则请参考下面的截图。

NameCheap CNAME record for AWS S3 website hosting

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

AWS S3 website endpoint

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接