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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

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

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

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

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

注意

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

先决条件

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

步骤 1:注册域

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

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

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

为您的根域创建一个 S3 存储桶
  1. 通过 https://console.aws.amazon.com/s3/ 打开 Amazon S3 控制台。

  2. 选择创建存储桶

  3. 输入以下值:

    Bucket name(存储桶名称)

    输入域的名称,如 example.com

    区域

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

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

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

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

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

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

为 www 创建 S3 存储桶。 your-domain-name
  1. 请选择创建存储桶

  2. 输入以下值:

    Bucket name(存储桶名称)

    输入 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. 选择属性

  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(端点)。

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

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

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

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

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

  2. 选择属性

  3. 静态网站托管下,选择编辑

  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. 例如 your-domain-nameResource将的值更新为example.com

  7. 选择保存更改

步骤 9:测试您的域端点

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

注意

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

有关更多信息,请参阅查看者与之间的通信需要 HTTPS CloudFront

  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. Record type (记录类型) 中,选择 A – Routes traffic to an IPv4 address and some Amazon resources (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. Record type (记录类型) 中,选择 A – Routes traffic to an IPv4 address and some Amazon resources (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 服务,可加快向用户分发静态和动态 Web 内容(例如.html、.css、.js 和图像文件)的速度。 CloudFront 通过名为边缘位置的全球数据中心网络交付您的内容。当用户请求与您一起提供的内容时 CloudFront,该用户将被路由到延迟(时间延迟)最低的边缘站点,以便以最佳性能交付内容。

  • 如果内容已经以最低的延迟处于边缘位置,请立即 CloudFront 交付。

  • 如果内容不在该边缘位置,则会从您已确定为内容最终版本来源的 Amazon S3 存储桶或 HTTP 服务器(例如 Web 服务器)中 CloudFront 检索内容。

有关使用 CloudFront 分发 Amazon S3 存储桶中的内容的信息,请参阅《亚马逊 CloudFront 开发者指南》中的在分发来自 Amazon S3 的内容 CloudFront 时添加