将您的域用于 Amazon S3 存储桶中的静态网站 - Amazon Route 53
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将您的域用于 Amazon S3 存储桶中的静态网站

此入门教程演示如何执行以下任务:

  • 注册一个域名,如 example.com。

  • 创建一个 Amazon S3 存储桶并进行配置,以便托管一个网站

  • 创建一个示例网站,并将文件保存到 S3 存储桶中

  • 配置 Amazon Route 53 以将流量路由到您的新网站

完成后,您将能够打开一个浏览器,输入您的域名并查看您的网站。

注意

您也可以将现有域转移到 Route 53,但与注册一个新域相比,这一过程更复杂且更耗时。有关更多信息,请参阅 将域注册转移到 Amazon Route 53

先决条件

开始之前,请确保您已完成 设置 Amazon Route 53 中的步骤。

步骤 1:注册域

要使用某个域名(如 example.com),您必须找到一个尚未被使用的域名并注册该域名。当您注册域名时,即表示您要保留它以供您在 Internet 上的任何位置独占使用,通常为期一年。预设情况下,我们会在每年年底自动续订您的域名,但您可以关闭自动续订。

要使用 Amazon Route 53 注册新域

  1. 登录 Amazon Web Services Management Console,并通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/

  2. 如果您不熟悉 Route 53,请选择入门

    如果您已经在使用 Route 53,则在导航窗格中,选择 Registered domains(注册域)。

  3. 选择 Register Domain

  4. 输入要注册的域名,选择 Check 来了解该域名是否可用。

    有关如何指定除 a-z、0-9 和 - (连字符) 以外的字符以及如何指定国际化域名的信息,请参阅 DNS 域名格式

  5. 如果该域可用,则选择 Add to cart。域名将出现在您的购物车中。

    Related domain suggestions(相关域建议)列表显示您可能希望注册的其它域,以在您的首选域不可用时代替首选域,或者在首选域之外注册其它域。对于您希望注册的每个额外域,选择 Add to cart,最多可选择五个域。

    如果域名不可用,并且您不想使用建议的域名,请重复步骤 4,直到找到一个中意的可用域名。

    注意

    如果您还希望用户能够使用 www.your-domain-name(如 www.example.com)来访问您的示例网站,则无需注册另一个域。在本主题的稍后部分,我们将解释如何将 www.your-domain-name 的流量路由到您的网站。

  6. 在购物车中,选择域要注册的年数。

  7. 要注册多个域,请重复步骤 4 到 6。

  8. 选择 Continue (继续)

  9. Contact Details for Your n Domains 页面上,输入域注册者、管理员和技术联系人的联系信息。

    默认情况下,我们对全部三个联系人使用相同信息。如果要为一个或多个联系人输入不同信息,请将 My Registrant, Administrative, and Technical contacts are all the same 的值更改为 No

    如果您要注册多个域,我们将对所有域使用相同的联系人信息。

    有关更多信息,请参阅 您在注册或转移域时指定的值

  10. 对于某些顶级域 (TLD),我们需要收集更多信息。对于这些 TLD,请在 Postal/Zip Code 字段后输入适用的值。

  11. 选择是否要向 WHOIS 查询隐藏您的联系人信息。有关更多信息,请参阅以下主题:

  12. 选择 Continue (继续)

  13. 检查您输入的信息,阅读服务条款,并选中相应复选框,以确认您已阅读服务条款。

  14. 选择 Complete Purchase

    我们会向域注册人发送一封电子邮件,以确认可以按照您指定的电子邮件地址联系注册联系人。(这是一项 ICANN 要求。) 电子邮件来自以下电子邮件地址之一:

    • noreply@registrar.amazon.com — 用于 Amazon Registrar 注册的 TLD。

    • noreply@domainnameverification.net — 用于我们的注册商合作者 Gandi 注册的 TLD。要确定您的 TLD 注册商是谁,请参阅可向 Amazon Route 53 注册的域。

    重要

    注册联系人必须按照电子邮件中的说明来确认已收到电子邮件,否则我们必须按照 ICANN 的要求暂停该域。域被暂停后,将无法在 Internet 上访问该域。

    当您的域注册获批后,您将收到另一封电子邮件。要确定您的请求的最新状态,请参阅 查看域注册的状态

默认情况下,域注册的有效期为一年。如果您不希望保留该域,可以关闭自动续订,则该域将在一年后过期。

(可选)要关闭域的自动续订

  1. 在导航窗格中,选择 Registered domains

  2. 在域列表中,选择域的链接名称。

  3. 如果 Auto renew(自动续订)字段的值为 Enabled (disable)(启用(禁用)),则选择 disable(禁用)以关闭自动续订。更改会立即生效。

    如果该字段的值为 Disabled (enable),则不要更改设置。

步骤 2:为根域创建 S3 存储桶

Amazon S3 允许您从互联网上的任何位置存储和检索您的数据。要整理您的数据,可使用 Amazon Web Services Management Console创建存储桶并将数据上传到存储桶。您可以使用 Amazon S3 在存储桶中托管静态网站。以下步骤介绍如何创建存储桶。

为您的根域创建一个 S3 存储桶

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 选择 Create bucket (创建存储桶)

  3. 输入以下值:

    存储桶名称

    输入域的名称,如 example.com

    区域

    选择最靠近您的大多数用户的区域。

    记下所选择的区域;稍后您将需要此信息。

  4. 要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。

步骤 3(可选):为您的子域创建另一个 S3 存储桶

在前面的过程中,您为域名 (如 example.com) 创建了一个存储桶。这样您的用户就可以使用您的域名 (如 example.com) 访问您的网站。

如果您还希望用户能够使用 www.your-domain-name(如 www.example.com)来访问您的示例网站,则需要创建另一个 S3 存储桶。对第二个存储桶进行配置,将流量路由至第一个存储桶。

为 www.your-domain-name 创建一个 S3 存储桶

  1. 选择创建存储桶

  2. 输入以下值:

    存储桶名称

    输入 www.your-domain-name。例如,如果您注册了域名 example.com,则输入 www.example.com

    区域

    选择创建第一个存储桶时所在的同一区域。

  3. 要接受原定设置并创建存储桶,请选择 Create (创建)

步骤 4:为网站托管设置根域存储桶

现在您已经有了 S3 存储桶,您可以将其配置为网站托管。

要允许在 S3 存储桶上托管网站

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. Buckets(存储桶)列表中,选择要为其启用静态网站托管的存储桶的名称。

  3. 选择 Properties (属性)

  4. Static website hosting(静态网站托管)下,选择 Enable(启用)。

  5. 选择使用此存储桶托管网站

  6. 静态网站托管下,选择启用

  7. Index document (索引文档) 中,输入索引文档的文件名,通常为 index.html

    索引文档名称区分大小写,并且必须与您计划上传到 S3 存储桶的 HTML 索引文档的文件名完全匹配。当您为网站托管配置存储桶时,您必须指定索引文档。当对根域或任何子文件夹发出请求时,Amazon S3 将返回此索引文档。

  8. (可选)要为 4XX 类错误提供自己的自定义错误文档,请在 Error document(错误文档)中输入自定义错误文档文件名。

    如果未指定自定义错误文档并发生错误,Amazon S3 返回默认 HTML 错误文档。

  9. (可选)如果要指定高级重新导向规则,请在 Redirection rules(重新导向规则)中,输入 XML 来描述规则。

    有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的配置高级条件重新导向

  10. 选择保存更改

  11. Static website hosting(静态网站托管)下,记下 Endpoint(端点)。

    Endpoint (端点) 是存储桶的 Amazon S3 网站端点。将存储桶配置为静态网站后,您可以使用此端点来测试您的网站,如 步骤 9:测试您的域端点 中所示。

    在采用以下步骤编辑公有访问的设置并添加允许公有读取访问的存储桶策略后,您可以使用网站端点访问您的网站。

步骤 5:(可选):为网站重新导向设置子域存储桶

在为网站托管配置了根域存储桶后,可以选择将子域存储桶配置为将所有请求重新导向到该域。例如,您可以为 www.example.com 配置所有要重新导向到 example.com 的请求。

要配置重新导向

  1. 在 Amazon S3 控制台上的 Buckets(存储桶)列表中,选择您的子域存储桶名称(例如 www.example.com)。

  2. 选择属性

  3. Static website hosting(静态网站托管)下,选择 Edit(编辑)。

  4. 选择 Redirect requests for an object (重新导向对于对象的请求)

  5. Target bucket (目标存储桶) 框中,输入您的根域(例如 example.com)。

  6. 对于 Protocol (协议),选择 http

  7. 选择保存更改

步骤 6:上载索引和网站内容

当您允许存储桶启用静态网站托管时,您可以输入索引文档的名称(例如,index.html)。在允许静态网站托管存储桶后,您可以将具有此索引文档名称的 HTML 文件上载到存储桶。

要上载索引文件

  1. 复制以下示例文本,您可以用作本教程的简单单页网站,将其粘贴到文本编辑器中,并将其保存为 index.html:

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet Traffic to an Amazon S3 Bucket for Your Website</h1> <p>For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p> </body> </html>
  2. 存储桶列表中,选择要为其启用静态网站托管的存储桶的名称。

  3. 在 Amazon S3 控制台中,选择在 要允许在 S3 存储桶上托管网站(点击已添加链接的存储桶名称)过程中创建的存储桶名称。

  4. 选择 Upload(上载)、Add Files(添加文件),从保存的位置选择 index.html,然后 Upload(上载)。

  5. 如果创建了错误文档,例如,404.html,请按照步骤 3 到 5 将其上载。

步骤 7:编辑 S3 阻止公有访问设置

默认情况下,Amazon S3 阻止对您的账户和存储桶的公有访问权限。如果要使用存储桶托管静态网站,请使用以下步骤编辑您的公有访问设置。

警告

在完成此步骤之前,请查看阻止对 Amazon S3 存储的公有访问,以确保您了解并接受允许进行公有访问所涉及的风险。当您关闭阻止公有访问设置以使您的存储桶变为公有时,Internet 上的任何人都可以访问您的存储桶。我们建议您阻止对存储桶的所有公有访问。

将流量路由到您的网站

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 选择已配置为静态网站的存储桶的名称。

  3. 选择权限

  4. 阻止公有访问(存储桶设置)下,选择编辑

  5. 清除 Block all public access(阻止所有公有访问),然后选择 Save changes(保存更改)。

Amazon S3 关闭了您的存储桶的阻止公有访问设置。要创建公有静态网站,您可能还必须编辑账户的阻止公有访问设置,然后再添加存储桶策略。如果当前已打开账户的阻止公有访问设置,您将在 Block public access (bucket settings) (阻止公有访问(存储桶设置)) 下看到一条备注。

步骤 8:附加存储桶策略

在编辑 Amazon S3 阻止公有访问设置后,您可以添加存储桶策略以授予对存储桶的公有读取访问权限。当您授予公有读取访问权限时,Internet 上的任何人都可以访问您的存储桶。

警告

在完成此步骤之前,请查看阻止对 Amazon S3 存储的公有访问,以确保您了解并接受允许进行公有访问所涉及的风险。当您关闭阻止公有访问设置以使您的存储桶变为公有时,Internet 上的任何人都可以访问您的存储桶。我们建议您阻止对存储桶的所有公有访问。

将流量路由到您的网站

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 存储桶 下,选择存储桶的名称。

  3. 选择权限

  4. 存储桶策略下,选择编辑

  5. 复制下面的存储桶策略并粘贴到文本编辑器中。此策略授予互联网上的每个人 ("Principal":"*") 权限,来获得与您的域名 ("Action":["s3:GetObject"]) 关联的 S3 存储桶中的文件 ("arn:aws:s3:::your-domain-name/*")。

    { "Version":"2012-10-17", "Statement":[{ "Sid":"AddPerm", "Effect":"Allow", "Principal":"*", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::your-domain-name/*" ] }] }
  6. Resource 的值更新为 your-domain-name,例如 example.com

  7. 选择保存更改

步骤 9:测试您的域端点

在将您的域存储桶配置为托管公有网站之后,可以测试您的端点。您只能测试域存储桶的端点,因为您的子域存储桶是为网站重新导向设置的,而不是静态网络托管。

注意

Amazon S3 不支持对该网站进行 HTTPS 访问。如果要使用 HTTPS,则可以使用 Amazon CloudFront 为 Amazon S3 上托管的静态网站提供服务。

有关更多信息,请参阅中的要求在查看器和 CloudFront 之间使用 HTTPS 进行通信

  1. Buckets (存储桶) 下,选择存储桶的名称。

  2. 选择属性

  3. 在页面底部的 Static website hosting (静态网站托管) 下,选择 Bucket website endpoint (存储桶网站端点)

    您的索引文档将在单独的浏览器窗口中打开。

步骤 10:将您的域的 DNS 流量路由到您的网站存储桶

现在,您的 S3 存储桶中有了一个包含一个网页的网站。要开始将您的域的 Internet 流量路由到您的 S3 存储桶,请执行以下过程。

将流量路由到您的网站

  1. 通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/

  2. 在导航窗格中,选择 Hosted zones(托管区域)

    注意

    当您注册域时,Amazon Route 53 将自动使用相同的名称创建一个托管区域。托管区域包含有关您希望 Route 53 如何路由域流量的信息。

  3. 在托管区域列表中,选择您的域名。

  4. 选择创建记录

    注意

    每个记录都包含有关您希望如何路由某个域 (如 example.com) 或一个子域(如 www.example.com 或 test.example.com)流量的信息。记录存储在域的托管区域中。

  5. 选择切换到向导

  6. 选择 Simple routing(简单路由),然后选择 Next(下一步)。

  7. 选择定义简单记录

  8. 记录名称中,接受默认值,该值为您的托管区域和您的域的名称。

  9. 记录类型中,选择 A- 将流量路由到 IPv4 地址和某些 Amazon 资源

  10. 值/流量路由至中,选择向 S3 网站端点添加别名

  11. 选择区域。

  12. 选择 S3 存储桶。

    存储桶名称应与 Name (名称) 框中显示的名称相匹配。例如,在选择 S3 存储桶列表中,存储桶名称将与创建存储桶所在地区的 Amazon S3 网站端点一起显示 s3-website-us-west-1.amazonaws.com (example.com)

    Choose S3 bucket(选择 S3 存储桶)如果出现以下情况之一,则会列出存储桶:

    • 您已将存储桶配置为静态网站。

    • 存储桶名称与您正在创建的记录的名称相同。

    • 当前 Amazon 账户创建了存储桶。

    如果您的存储桶未显示在选择 S3 存储桶列表中,请输入在其中创建存储桶的区域的 Amazon S3 网站端点,例如 s3-website-us-west-2.amazonaws.com。有关 Amazon S3 网站端点的完整列表,请参阅 Amazon S3 网站端点。有关别名目标的更多信息,请参阅 简单别名记录的特定值 中的“值路由流量至”部分。

  13. 对于评估目标运行状况,选择

  14. 选择定义简单记录

(可选)要为您的子域添加别名记录 (www.example.com)

如果您为子域创建了存储桶,请同时为其添加别名记录。

  1. 配置记录下,选择定义简单记录

  2. 在子域的记录名称中,键入 www

  3. 记录类型中,选择 A- 将流量路由到 IPv4 地址和某些 Amazon 资源

  4. 值/流量路由至中,选择向 S3 网站端点添加别名

  5. 选择区域。

  6. 选择 S3 存储桶,例如 s3-website-us-west-2.amazonaws.com (example.com)

    如果您的存储桶未显示在选择 S3 存储桶列表中,请输入在其中创建存储桶的区域的 Amazon S3 网站端点,例如 s3-website-us-west-2.amazonaws.com

  7. 对于评估目标运行状况,选择

  8. 选择定义简单记录

  9. 配置记录页面上,选择创建记录

步骤 11:测试您的网站

要验证您的网站是否工作正常,请打开一个 Web 浏览器并浏览到下列 URL:

  • http://your-domain-name,例如,example.com — 显示 your-domain-name 存储桶中的索引文档

  • http://www.your-domain-name,例如,www.example.com — 将您的请求重新导向到 your-domain-name 存储桶

在某些情况下,您可能需要清除缓存才能看到预期行为。

有关路由 Internet 流量的更多高级信息,请参阅 将 Amazon Route 53 配置为 DNS 服务。有关将互联网流量路由到 Amazon 资源的更多信息,请参阅 将 Internet 流量路由到您的 Amazon 资源

步骤 12(可选):使用 Amazon CloudFront 加快内容分配

CloudFront 是一项加快将静态和动态 Web 内容(例如 .html、.css、.js 和图像文件)分发给用户的速度的 Web 服务。CloudFront 通过全球数据中心(称作边缘站点)网络传输内容。当用户请求您用 CloudFront 提供的内容时,用户被路由到提供最低延迟(时间延迟)的边缘站点,从而以尽可能最佳的性能传送内容。

  • 如果该内容已经在延迟最短的边缘站点上,CloudFront 将直接提供它。

  • 如果内容不在该节点中,CloudFront 将从 Amazon S3 存储段或 HTTP 服务器(例如,web 服务器)对其进行检索,而且您已经确定该 Amazon S3 存储段或 HTTP 服务器为内容最终版本的源。

有关使用 CloudFront 分发 Amazon S3 存储桶中的内容的信息,请参阅 Amazon CloudFront 开发人员指南中的从 Amazon S3 分发内容时添加 CloudFront