听起来你已经完成了大部分工作。为了清晰起见,我将再次重述这些步骤,以确保您正确设置:
使用你的域名作为存储桶名称创建一个s3存储桶(如果你想让你的网站成为example.com
或www.example.com
,则你的存储桶名称应为www.example.com
)
将你的内容上传到s3存储桶中。选择一个一致的名称用于你的网站索引文件(通常为index.html
)。你还可以上传一个自定义页面用于404 Not Found错误。将其命名为404.html
。授予每个网站文件读取权限,以便公众可以查看它。不要给存储桶赋予任何额外的权限,只需在其中授予文件即可。
将你的存储桶配置为网站。使用AWS控制台(https://console.aws.amazon.com/s3/),你可以选择你的存储桶,单击属性,然后选择“网站”选项卡。单击启用,并将你的索引文档设置为index.html
,将错误文档设置为404.html
。你还需要设置存储桶的访问权限,以允许通过Web进行访问(http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)。
记下网站配置选项卡中的“Endpoint” 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
,则会发生以下情况:
- DNS查询:
example.com
-> 174.129.25.170
(wwwizer.com的服务)
- 向
174.129.25.170
发送HTTP请求以获取example.com
174.129.25.170
重定向example.com
-> www.example.com
- DNS查询:
www.example.com
-> CNAME至www.example.com.s3-website-us-east-1.amazonaws.com
- DNS查询:
www.example.com.s3-website-us-east-1.amazonaws.com
-> 指向Amazon S3
- 现在,
www.example.com
的HTTP请求由Amazon S3提供
祝您愉快!