我正在开发一个小的Web应用程序(所有客户端),我想将其托管在Amazon S3上。我找到了一些有关此的指南,并设法为自己创建了一个存储桶(与我的域的名称相同),将其设置为网站并上传了一些内容。
在我苦苦挣扎的地方,以及所有文档开始变得有些模糊的地方,是如何正确配置DNS。
我的所有注册服务商(123-reg)可能都建议使用网络转发,这使我得到了mydomain.com.s3.amazonaws.com
我必须配置什么,在哪里(例如123-reg / Amazon)可以获得干净的URL?
我正在开发一个小的Web应用程序(所有客户端),我想将其托管在Amazon S3上。我找到了一些有关此的指南,并设法为自己创建了一个存储桶(与我的域的名称相同),将其设置为网站并上传了一些内容。
在我苦苦挣扎的地方,以及所有文档开始变得有些模糊的地方,是如何正确配置DNS。
我的所有注册服务商(123-reg)可能都建议使用网络转发,这使我得到了mydomain.com.s3.amazonaws.com
我必须配置什么,在哪里(例如123-reg / Amazon)可以获得干净的URL?
Answers:
听起来您已经完成了大部分工作。为了清楚起见,我将再次检查这些步骤,以确保设置正确:
使用您的域名作为存储桶名称来创建s3存储桶(如果您希望站点为example.com或www.example.com,则存储桶名称应为www.example.com)
将您的内容上传到s3存储桶。为您的网站索引文件选择一个一致的名称(通常为index.html)。您还可以上载针对404找不到错误的自定义页面。将此称为404.html。授予您网站中每个文件的“读取”权限,以便公众查看。不要给存储桶额外的权限,只给其中的文件。
将您的存储桶配置为网站。使用AWS控制台(https://console.aws.amazon.com/s3/),可以选择存储桶,单击属性,然后选择“网站”选项卡。单击启用,然后将索引文档设置为“ index.html”,将错误文档设置为“ 404.html”。您还需要将存储桶设置为具有访问权限,以允许通过Web访问(http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)
在网站配置标签中记下“端点” URL。这是您的网站所在的位置。您可以在新窗口中打开链接,您应该会像看到的一样看到您的网站。单击周围并确保一切正常。
您必须在以下所有步骤中使用端点地址。常规的www.example.com.s3.amazonaws.com无法正常工作-您需要使用区域版本(http://www.example.com.s3-website-us-east-1.amazonaws.com/)
现在,我们可以设置DNS,为您提供一个干净的自定义URL。
首先,我们会将www.example.com映射到您的网站。
使用您的DNS提供程序的工具(在您的情况下为123-reg),您需要创建一个CNAME记录,以将www.example.com映射到www.example.com.s3-website-us-east-1.amazonaws.com
如果仅需要www.example.com,则仅需要CNAME。大多数人还希望“ example.com”能够正常工作,因此我们需要采取另一步骤。
example.com通常被称为裸域或该域的最高记录。这是一个问题,原因是它不能是CNAME。CNAME仅在“ www”之类的子域上工作。这使得指向s3更加困难。
通常的方法是使用服务来自动重定向任何转到example.com的请求,使其指向www.example.com。然后,这将获取您的CNAME记录,并且您的网站将从s3开始提供服务。
普通的旧DNS无法进行自动重定向,因此您必须使用其他服务。一些DNS提供商与DNS一起提供此服务(godaddy会提供,amazon route53不会。不确定123-reg)
如果您的DNS提供商没有这样做,则有一些免费服务。我使用过的一种是http://wwwizer.com/naked-domain-redirect-不需要任何注册或付款。
要使用这种类型的服务,您需要为裸域创建DNS“ A”记录。对于wwwizer.com服务,您需要创建一个A记录,以将example.com指向174.129.25.170。就这样!
因此,使用此设置,如果用户在其浏览器中键入example.com,则会发生以下情况:
请享用!
在123-reg控制面板上的“高级DNS”屏幕上
这给了我以下几点:
DNS EntryType PriorityTTLDestination/Target
* A 81.xx.xx.xx
@ A 81.xx.xx.xx
@ MX 10 xx0.123-reg.co.uk
@ MX 20 xx1.123-reg.co.uk
www CNAME www.example.com.s3-website-us-east-1.amazonaws.com
在他们的Manage DNS guide pdf中,“ @记录”是指“您最纯的域,没有子域”,即裸域stackoverflow.com
但是它没有提到“ *记录”是什么,我以为它将捕获所有子域,并认为它可能会超过CNAME记录,但事实并非如此。