本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon CloudFront 分配为静态网站提供服务
此入门教程演示如何执行以下任务:
注册一个域名,如 example.com。
为域创建证书。
创建两个 Amazon S3 存储桶,并将一个存储桶配置为托管网站,另一个配置为重新导向到子域。
创建一个示例网站,并将文件保存到 S3 存储桶中。
为两个 S3 存储桶创建 CloudFront 分配。
配置 Amazon Route 53 将流量路由到 CloudFront 分配。
完成后,您将能够打开一个浏览器,输入您的域名并安全地查看您的网站。
主题
先决条件
开始之前,请确保您已完成 设置 Amazon Route 53 中的步骤。
步骤 1:注册域
要使用某个域名(如 example.com),您必须找到一个尚未被使用的域名并注册该域名。当您注册域名时,即表示您要保留它以供您在 Internet 上的任何位置独占使用,通常为期一年。默认情况下,我们会在每年年底自动续订您的域名,但您可以关闭自动续订。有关详细信息,请参阅 注册新域。
步骤 2:请求公有证书
您需要一个公有证书来将 Amazon CloudFront 分配配置为要求查看器使用 HTTPS,以便在 CloudFront 与查看器通信时加密连接。
要请求 Amazon Certificate Manager (ACM) 公有证书(控制台)
-
登录Amazon管理控制台并从以下位置打开 ACM 控制台:https://console.aws.amazon.com/acm/home
。 注意
请确保您在美国东部(弗吉尼亚北部)区域创建证书。这是 Amazon CloudFront 的必需条件。
在左导航中,选择请求证书,在请求证书页面上,选择请求公有证书,然后选择下一步。
在域名部分中,输入您的域,例如
example.com
。选择为此证书添加另一个名称,在域名前面输入星号,以便为所有子域申请通配符证书,例如
*.example.com
。在验证方法部分中,选择 DNS 验证。
在密钥算法部分中,选择 RSA 2048。
-
在添加标签部分中,您可以选择为证书添加标签。标签是键值对,用作标识和组织Amazon资源的元数据。
选择请求进入证书页面。
当您的新证书显示为待处理状态后,选择证书 ID,然后选择在 Route 53 中创建记录,为您的域自动添加 CNAME 记录,然后选择创建记录。
此时会打开 Certificate status(证书状态)页面,状态横幅将报告 Successfully created DNS records(已成功创建 DNS 记录)。
您的新证书可能会继续显示 Pending validation(等待验证)最多 30 分钟。
步骤 3:创建 S3 存储桶来托管子域
为 www.your-domain-name 创建一个 S3 存储桶
Amazon S3 允许您从互联网上的任何位置存储和检索您的数据。在此步骤中,您将创建一个 S3 存储桶来存储您网站的所有文件。
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
选择创建存储桶。
-
输入以下值:
- Bucket name(存储桶名称)
-
输入 www.
your-domain-name
。例如,如果您注册了域名 example.com,则输入 www.example.com。 - 区域
-
为您的存储桶选择一个区域。
-
要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。
有关 S3 存储桶设置的更多信息,请参阅 Amazon S3 用户指南中的查看存储桶属性。
步骤 4:为根域创建另一个 S3 存储桶
如果您还希望用户能够使用根域 your-domain-name
(如 www.example.com)来访问您的示例网站,则需要创建另一个 S3 存储桶。在本教程中,之后对第二个存储桶(根域)进行配置,将流量路由至第一个存储桶。
要为 your-domain-name 创建一个 S3 存储桶
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
选择创建存储桶。
-
输入以下值:
- Bucket name(存储桶名称)
-
输入
your-domain-name
。例如,如果您注册了域名 example.com,则输入 example.com。 - 区域
-
选择创建第一个存储桶时所在的同一区域。
-
要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。
步骤 5:将网站文件上载到您的子域存储桶
现在您有了 S3 存储桶,可以上载您的网站文件。在本教程中,您只需上传一个简单的 index.html 文件,以在页面上显示文本。
要为 S3 存储桶启用网站托管
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets(存储桶)列表中,选择要将网站文件上载到的存储桶的链接名称,例如
www.example.com
。 -
复制创建简单单页网站的示例文本,将其粘贴到文本编辑器中,并将其保存为 index.html:
<html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet traffic to Cloudfront distributions for your website stored in an S3 bucket</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>
-
在 Objects(对象)选项卡中,选择 Upload(上载)。
-
在 Files and folders(文件和文件夹)中,选择 Add files(添加文件)并上载您的网站文件。对于本教程,请上传您在本程序步骤 3 中保存的 index.html 文件。
步骤 6:为网站重新导向设置根域存储桶
在为网站托管配置了根域存储桶后,可以选择将根域存储桶配置为将所有请求重新导向到该子域。例如,您可以为 example.com
配置所有要重新导向到 www.example.com
的请求。
要配置重新导向
在 Amazon S3 控制台上的 Buckets(存储桶)列表中,选择您的存储桶名称(在本例中为
example.com
)。选择属性。
在静态网站托管下,选择编辑。
在 Static website hosting(静态网站托管)下,选择 Enable(启用)。
请选择 Redirect requests for an object(重定向对于对象的请求)。
在 Host name(主机名称)框中,输入您的子域(例如
www.example.com
)。对于协议,选择 HTTPS。
选择 Save changes(保存更改)。
-
在 Static website hosting(静态网站托管)下,记下 Endpoint(端点)。
端点是存储桶的 Amazon S3 网站端点。您将使用此端点设置 Amazon CloudFront 分配。
步骤 7:为您的子域创建 Amazon CloudFront 分配
在此步骤中,您将为您的子域创建一个 CloudFront 分配,例如 www.example.com,以使您的网站能够使用 HTTPS,从而让人们可以安全地查看该网站。
创建 CloudFront 分配
通过 打开 CloudFront 控制台https://console.amazonaws.cn/cloudfront/v4/home
-
选择 Create Distribution(创建分配)。
-
对于源设置下的源域名,选择您之前创建的 Amazon S3 存储桶。格式将类似于
。www.example.com.s3.<Region>.amazonaws.com
对于来源访问,请选择遗留访问身份。对于 Origin access identity(来源访问标识(OAI)),您可以从列表中选择,或选择 Create new OAI(创建新的 OAI),两种选择都有效。
对于 Bucket policy(存储桶策略),选择 Yes, update the bucket policy(是,更新存储桶策略)。
-
对于 Default Cache Behavior Settings(默认缓存行为设置),在 Viewer(查看器)下,将 Viewer protocol policy(查看器协议策略)设置为 Redirect HTTP to HTTPS(将 HTTP 重定向到 HTTPS)并接受其余部分的默认值。
有关缓存行为的更多信息,请参阅 Amazon CloudFront 开发人员指南中的缓存行为设置。
在 Web 应用程序防火墙(WAF)部分中,您可以选择启用或禁用 Amazon WAF 安全保护。
-
对于 Settings(设置)项下的字段,执行以下操作:
-
在CloudFront 创建了分配后,分配的状态列的值将从进行中更改为已部署。这通常需要花费几分钟的时间。
记录 CloudFront 指派给分配的域名,这些域名会出现在分配列表中。您可以使用此域名来测试分配。
步骤 8:为您的根域创建 Amazon CloudFront 分配
在此步骤中,您将为您的根域创建 CloudFront 分配,以便在其 URL 重新导向到子域时使用 HTTPS。
创建 CloudFront 分配
通过 打开 CloudFront 控制台https://console.amazonaws.cn/cloudfront/v4/home
-
选择 Create Distribution(创建分配)。
-
在 Origin Settings(源设置)项下,对于 Origin Domain Name(源域名),输入存储桶网站端点。您可以从以前创建的 Amazon S3 存储桶的 Properties(属性)中的 Static website hosting(静态网站托管)部分获得此信息。
对于其余部分,请接受默认值。
在 Web 应用程序防火墙(WAF)部分中,您可以选择启用或禁用 Amazon WAF 安全保护。
-
对于缓存密钥和源请求下的字段,选择缓存策略和源请求策略(推荐),然后在缓存策略下拉列表中选择 CachingDisabled
对于其余部分,请接受默认值。
有关缓存行为的更多信息,请参阅 Amazon CloudFront 开发人员指南中的缓存行为设置。
-
对于 Settings(设置)项下的字段,执行以下操作:
-
对于 Alternate domain name (CNAME)(备用域名(别名记录)- 可选)选择 Add item(添加项目),然后输入您的根域,例如
example.com
。 -
对于 Custom SSL Certificate(自定义 SSL 证书),选择您以前创建的证书。
-
对于其余部分,请接受默认值。
有关分配选项的更多信息,请参阅分配设置。
-
-
在页面底部,选择创建分配。
-
在CloudFront 创建了分配后,分配的状态列的值将从进行中更改为已部署。这通常需要花费几分钟的时间。
记录 CloudFront 指派给分配的域名,这些域名会出现在分配列表中。您可以使用此域名来测试分配,
步骤 9:将域的 DNS 流量路由到您的 CloudFront 分配
现在,您的 S3 存储桶中有使用了 CloudFront 分配的单页网站。要开始将域的互联网流量路由到 CloudFront 分配,请执行以下过程。
有关将流量路由到 CloudFront 分配的更多信息,请参阅 使用您的域名将流量路由到 Amazon CloudFront 分配。
将流量路由到您的网站
通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/
。 -
在导航窗格中,选择 Hosted zones(托管区域)。
注意
当您注册域时,Amazon Route 53 将自动使用相同的名称创建一个托管区域。托管区域包含有关您希望 Route 53 如何路由域流量的信息。
-
在托管区域列表中,选择您的域名。
-
选择创建记录。
如果您位于 Quick create record(快速创建记录)视图中,请选择 Switch to wizard(切换到向导)。
注意
每个记录都包含有关您希望如何路由某个域 (如 example.com) 或子域 (如 www.example.com 或 test.example.com) 流量的信息。记录存储在域的托管区域中。
-
选择 Simple routing(简单路由),然后选择 Next(下一步)。
-
请选择定义简单记录。
-
在 Record name(记录名称)中,在默认值前键入
www
,该值为您的托管区域和域的名称。 -
在 Record type(记录类型)中,选择 A – Routes traffic to an IPv4 address and some Amazon resources(A – 将流量路由到 IPv4 地址和某些亚马逊云科技资源)。
-
在 Value Route traffic to(值路由流量至)项下,选择 Alias to CloudFront distribution((别名到 CloudFront 分配))。
-
选择分配。
分配名称应与 Distributions(分配)列表中的 Domain name(域名)中出现的名称相匹配,例如
dddjjjkkk.cloudfront.net
。 -
对于评估目标运行状况,请选择否。
请选择定义简单记录。
为您的根域 (example.com
) 添加别名记录
同时为根域添加别名记录,以便它指向将流量重新导向到 www.example.com
的 S3 存储桶。有关将流量路由到 CloudFront 分配的更多信息,请参阅 使用您的域名将流量路由到 Amazon CloudFront 分配。
-
在导航窗格中,选择 Hosted zones(托管区域)。
-
在托管区域列表中,选择您的域名。
-
选择创建记录。
如果您位于 Quick create record(快速创建记录)视图中,请选择 Switch to wizard(切换到向导)。
注意
每个记录都包含有关您希望如何路由某个域 (如 example.com) 或子域 (如 www.example.com 或 test.example.com) 流量的信息。记录存储在域的托管区域中。
-
选择 Simple routing(简单路由),然后选择 Next(下一步)。
-
请选择定义简单记录。
-
在 Record name(记录名称)中,请接受默认值。
-
在 Record type(记录类型)中,选择 A – Routes traffic to an IPv4 address and some Amazon resources(A – 将流量路由到 IPv4 地址和某些亚马逊云科技资源)。
-
在 Value Route traffic to(值路由流量至)项下,选择 Alias to CloudFront distribution((别名到 CloudFront 分配))。
-
选择分配。
分配名称应与 Distributions(分配)列表中的 Domain name(域名)中出现的名称相匹配,例如
dddjjjkkk.cloudfront.net
。 -
对于评估目标运行状况,请选择否。
-
请选择定义简单记录。
-
在配置记录页面上,请选择创建记录。
步骤 10:测试您的网站
要验证您的网站是否工作正常,请打开一个 Web 浏览器并浏览到下列 URL:
http://www.
your-domain-name
,例如www.example.com
— 显示www.your-domain-name
存储桶中的索引文档http://www.
your-domain-name
,例如example.com
— 将您的请求重新导向至www.your-domain-name
存储桶
在某些情况下,您可能需要清除缓存才能看到预期行为。
有关路由 Internet 流量的更多高级信息,请参阅 将 Amazon Route 53 配置为 DNS 服务。有关将互联网流量路由到 Amazon 资源的更多信息,请参阅 将互联网流量路由到您的 Amazon 资源。