本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon CloudFront 发行版为静态网站提供服务
此入门教程演示如何执行以下任务:
注册一个域名,如 example.com。
为域创建证书。
创建两个 Amazon S3 存储桶,并将一个存储桶配置为托管网站,另一个配置为重新导向到子域。
创建一个示例网站,并将文件保存到 S3 存储桶中。
为两个 S3 存储桶创建 CloudFront 分配。
将 Amazon Route 53 配置为将流量路由到 CloudFront 分配。
完成后,您将能够打开一个浏览器,输入您的域名并安全地查看您的网站。
主题
先决条件
开始之前,请确保您已完成 设置 Amazon Route 53 中的步骤。
步骤 1:注册域
要使用某个域名(如 example.com),您必须找到一个尚未被使用的域名并注册该域名。当您注册域名时,即表示您要保留它以供您在 Internet 上的任何位置独占使用,通常为期一年。默认情况下,我们会在每年年底自动续订您的域名,但您可以关闭自动续订。有关详细信息,请参阅 注册新域。
步骤 2:请求公有证书
您的 Amazon CloudFront 分配需要公共证书, CloudFront 才能配置为要求查看者使用,HTTPS以便在与查看者 CloudFront 通信时对连接进行加密。
申请 AWS Certificate Manager(ACM) 公共证书(控制台)
-
登录 AWS 管理控制台并在https://console.aws.amazon.com/acm/家
中打开ACM控制台。 注意
请确保您在美国东部(弗吉尼亚北部)区域创建证书。这是 Amazon 所必需 CloudFront的。
在左导航中,选择请求证书,在请求证书页面上,选择请求公有证书,然后选择下一步。
在域名部分中,输入您的域,例如
example.com
。选择为此证书添加另一个名称,在域名前面输入星号,以便为所有子域申请通配符证书,例如
*.example.com
。在 “验证方法” 部分中,选择DNS验证。
在密钥算法部分,选择 RSA2048。
-
在添加标签部分中,您可以选择为证书添加标签。标签是键值对,用作识别和组织 AWS 资源的元数据。
选择请求进入证书页面。
当您的新证书显示为 “待处理” 状态后,选择证书 ID,然后在证书详细信息页面上,选择 “在 Route 53 中创建CNAME记录” 以自动添加您的域的记录,然后选择 “创建记录”。
证书状态页面应打开并显示状态横幅,报告已成功创建DNS记录。
您的新证书可能会继续显示 Pending validation(等待验证)最多 30 分钟。
步骤 3:创建 S3 存储桶来托管子域
为 www 创建 S3 存储桶。 your-domain-name
Amazon S3 允许您从互联网上的任何位置存储和检索您的数据。在此步骤中,您将创建一个 S3 存储桶来存储您网站的所有文件。
打开 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
(例如 example.com)要访问您的示例网站,请创建第二个 S3 存储桶。在本教程中,之后对第二个存储桶(根域)进行配置,将流量路由至第一个存储桶。
为创建 S3 存储桶 your-domain-name
打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/
。 -
选择创建存储桶。
-
输入以下值:
- Bucket name(存储桶名称)
-
输入
your-domain-name
。 例如,如果您注册了域名 example.com,请输入 example.com。 - 区域
-
选择创建第一个存储桶时所在的同一区域。
-
要接受原定设置并创建存储桶,请选择 Create bucket(创建存储桶)。
步骤 5:将网站文件上载到您的子域存储桶
现在您有了 S3 存储桶,可以上载您的网站文件。在本教程中,您只需上传一个简单的 index.html 文件,以在页面上显示文本。
要为 S3 存储桶启用网站托管
打开 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
)。对于 Protocol(协议),选择 HTTPS。
选择 Save changes(保存更改)。
-
在 Static website hosting(静态网站托管)下,记下 Endpoint(端点)。
端点是存储桶的 Amazon S3 网站端点。您将使用此终端节点来设置 Amazon CloudFront 分配。
第 7 步:为您的子域名创建 Amazon CloudFront 分配
在此步骤中,您将为您的子域名创建一个 CloudFront分配,例如 www.example.com,HTTPS以便人们可以安全地查看您的网站。
创建 CloudFront 分配
打开 CloudFront 控制台,网址为https://console.aws.amazon.com/cloudfront/v4/home
。 -
选择 Create Distribution(创建分配)。
-
对于源设置下的源域名,选择您之前创建的 Amazon S3 存储桶。格式将类似于
。www.example.com.s3.<Region>.amazonaws.com
对于来源访问,请选择遗留访问身份。对于 Origin 访问身份,您可以从列表中进行选择,也可以选择新建 OAI(两者都可用)。
对于 Bucket policy(存储桶策略),选择 Yes, update the bucket policy(是,更新存储桶策略)。
-
对于 “默认缓存行为设置” 下的设置,在 “查看器” 下,将查看器协议策略设置为 “重定HTTP向到 HTTPS”,其余的则接受默认值。
有关缓存行为选项的更多信息,请参阅 Amazon CloudFront 开发者指南中的缓存行为设置。
在 Web 应用程序防火墙 (WAF) 部分中,您可以选择启用或禁用 AWS WAF 安全保护。
-
对于 Settings(设置)项下的字段,执行以下操作:
-
CloudFront 创建分配后,分配的 “状态” 列的值将从 “进行中” 更改为 “已部署”。这通常需要花费几分钟的时间。
记录分配给您的分配的 CloudFront 域名,该域名显示在分配列表中。您可以使用此域名来测试分配。
第 8 步:为您的根域名创建 Amazon CloudFront 分配
在此步骤中,您将为根域创建一个 CloudFront 分配,以便在将其重定向到URL子域HTTPS时使用。
创建 CloudFront 分配
打开 CloudFront 控制台,网址为https://console.aws.amazon.com/cloudfront/v4/home
。 -
选择 Create Distribution(创建分配)。
-
在 Origin Settings(源设置)项下,对于 Origin Domain Name(源域名),输入存储桶网站端点。您可以从以前创建的 Amazon S3 存储桶的 Properties(属性)中的 Static website hosting(静态网站托管)部分获得此信息。
对于其余部分,请接受默认值。
在 Web 应用程序防火墙 (WAF) 部分中,您可以选择启用或禁用 AWS WAF 安全保护。
-
对于缓存密钥和源请求下的字段,选择缓存策略和源请求策略(推荐),然后在缓存策略下拉列表中,选择 CachingDisabled
对于其余部分,请接受默认值。
有关缓存行为选项的更多信息,请参阅 Amazon CloudFront 开发者指南中的缓存行为设置。
-
对于 Settings(设置)项下的字段,执行以下操作:
-
为备用域名 (CNAME) 选择添加项目-可选,然后输入您的根域名,例如
example.com
。 -
对于自定义SSL证书,请选择您之前创建的证书。
-
对于其余部分,请接受默认值。
有关分配选项的更多信息,请参阅分配设置。
-
-
在页面底部,选择创建分配。
-
CloudFront 创建分配后,分配的 “状态” 列的值将从 “进行中” 更改为 “已部署”。这通常需要花费几分钟的时间。
记录分配给您的分配的 CloudFront 域名,该域名显示在分配列表中。您可以使用此域名来测试分配,
第 9 步:将您的域名的DNS流量路由到您的CloudFront 分配
现在,您的 S3 存储桶中有一个使用 CloudFront 分配的单页网站。要开始将您的域名的 Internet 流量路由到 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
,该值为您的托管区域和域的名称。 -
在记录类型中,选择 A-将流量路由到一个IPv4地址和一些 AWS 资源。
-
在值/将流量路由到中,选择要分配的别名。 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(记录名称)中,请接受默认值。
-
在记录类型中,选择 A-将流量路由到一个IPv4地址和一些 AWS 资源。
-
在值/将流量路由到中,选择要分配的别名。CloudFront
-
选择分配。
分配名称应与 Distributions(分配)列表中的 Domain name(域名)中出现的名称相匹配,例如
dddjjjkkk.cloudfront.net
。 -
对于评估目标运行状况,请选择否。
-
请选择定义简单记录。
-
在配置记录页面上,请选择创建记录。
步骤 10:测试您的网站
要验证网站是否正常运行,请打开 Web 浏览器并浏览到以下内容URLs:
https://www。
your-domain-name
,例如,www.example.com
— 在中显示索引文档www.your-domain-name
桶https://
your-domain-name
例如,example.com
— 将您的请求重定向到www.your-domain-name
桶
在某些情况下,您可能需要清除缓存才能看到预期行为。
有关路由 Internet 流量的更多高级信息,请参阅 将 Amazon Route 53 配置为 DNS 服务。有关将互联网流量路由到 AWS 资源的信息,请参阅将互联网流量路由到您的 AWS 资源。