听起来您已经完成了大部分工作。为了清楚起见,我将再次检查这些步骤,以确保您已正确设置:
-
使用您的域名作为存储桶名称创建一个 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”。您还需要为您的存储桶设置访问权限以允许通过网络访问 (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,则会发生以下情况:
- DNS 查询:example.com -> 174.129.25.170(wwwizer.com 的服务)
- 对 example.com 的 174.129.25.170 的 HTTP 请求
- 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 提供服务
享受吧!