使用 Amazon CloudFront 为网站提速
您可以使用 Amazon CloudFront
CloudFront 会将内容在边缘站点上缓存您指定的时间。如果访问者请求已过期的缓存内容,CloudFront 会检查来源服务器,确定该内容是否有更新的版本可用。如果有更新的版本,则 CloudFront 将新版本复制到该边缘站点。当访问者请求内容时,您对原始内容所做的更改便会复制到边缘站点。
使用 Amazon CloudFormation 模板自动执行设置过程
有关使用 Amazon CloudFormation 模板配置安全静态网站以创建 CloudFront 分配来为您的网站提供服务的更多信息,请参阅《Amazon CloudFront 开发人员指南》中的安全静态网站入门。
步骤 1:创建 CloudFront 分配
首先,创建 CloudFront 分配。这将使您的网站可供全球各地的数据中心使用。
使用 Amazon S3 源创建分配
-
通过 打开 CloudFront 控制台https://console.amazonaws.cn/cloudfront/v3/home
-
选择 Create Distribution。
-
在 Select a delivery method for your content (选择内容交付方法) 页面上的 Web 下面,选择 Get Started (开始使用)。
-
在 Create Distribution(创建分配)页面上的 Origin Settings(源设置)部分中,对于 Origin Domain Name(源域名),输入您的存储桶的 Amazon S3 网站端点,例如
example.com.s3-website.us-west-1.amazonaws.com
。CloudFront 将为您填写 Origin ID (源 ID)。
-
对于 Default Cache Behavior Settings (默认缓存行为设置),将值保留设置为默认值。
当为查看器协议策略使用默认设置时,您可以为静态网站使用 HTTPS。有关这些配置选项的更多信息,请参阅《Amazon CloudFront 开发人员指南》中的您创建或更新 Web 分配时指定的值。
-
对于 Distribution Settings,执行以下操作:
-
将 Price Class (价格级别) 的设置保留为 Use All Edge Locations (Best Performance) (使用所有节点 (最佳性能))。
-
将 Alternate Domain Names (CNAMEs)(备用域名(CNAME)) 设置为根域和
www
子域。在本教程中,它们是example.com
和www.example.com
。重要
在执行该步骤之前,请注意使用备用域名的要求,尤其是需要使用有效的 SSL/TLS 证书。
-
对于 SSL 证书,选择自定义 SSL 证书 (example.com),然后选择涵盖域名和子域名的自定义证书。
有关更多信息,请参阅《Amazon CloudFront 开发人员指南》中的 SSL 证书。
-
在 Default Root Object (默认根对象) 中,输入索引文档的名称,例如
index.html
。如果用于访问分配的 URL 不包含文件名,CloudFront 分配将返回索引文档。Default Root Object (默认根对象) 应该与静态网站的索引文档的名称完全匹配。有关更多信息,请参阅配置索引文档。
-
将 Logging (日志记录) 设置为 On (打开)。
重要
当您创建或更新分配并启用 CloudFront 日志记录时,CloudFront 会更新存储桶访问控制列表 (ACL),以提供
awslogsdelivery
账户FULL_CONTROL
权限,从而将日志写入您的存储桶。有关更多信息,请参阅 Amazon CloudFront Developer Guide(Amazon CloudFront 开发人员指南)中的 Permissions required to configure standard logging and to access your log files(配置标准日志和访问日志文件所需的权限)。如果存储日志的存储桶使用存储桶拥有者强制执行的 S3 Object Ownership 设置来禁用 ACL,则 CloudFront 无法将日志写入存储桶。有关更多信息,请参阅为您的存储桶控制对象所有权和禁用 ACL。。 -
对于 Bucket for Logs,选择您创建的日志记录存储桶。
有关配置日志记录存储桶的更多信息,请参阅(可选)记录 Web 流量。
-
如果您要将由流量生成的日志存储到文件夹中的 CloudFront 分配,请在 Log Prefix (日志前缀) 中键入文件夹名称。
-
将所有其他设置保留为默认值。
-
-
选择 Create Distribution。
要查看分配的状态,请在控制台中找到该分配,然后检查 Status 列。
InProgress
(进行中) 状态表示分配尚未完成部署。分配部署完毕后,您可以使用新的 CloudFront 域名来引用您的内容。
记录 CloudFront 控制台中显示的 Domain Name (域名) 值,例如
dj4p1rv6mvubz.cloudfront.net
。-
要验证您的 CloudFront 分配是否正常运行,请在 Web 浏览器中输入该分配的域名。
如果您的网站是可见的,则 CloudFront 分配正常工作。如果您的网站具有向 Amazon Route 53 注册的自定义域,您将需要 CloudFront 域名来在下一步更新记录集。
步骤 2:更新域和子域的记录集
现在您已成功地创建 CloudFront 分配,请更新 Route 53 中的别名记录以指向新的 CloudFront 分配。
更新别名记录以指向 CloudFront 分配
-
通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/
。 -
在左侧导航中,选择 Hosted zones(托管区)。
-
在 Hosted Zones(托管区)页上,选择为您的子域创建的托管区域,例如
www.example.com
。 -
在 Records(记录)下,选择您为子域创建的 A 记录。
-
在 Record details(记录详细信息)下,选择 Edit record(编辑记录)。
-
在 Route traffic to(将流量路由至)下,选择 Alias to CloudFront distribution(别名到 CloudFront 分配)。
-
在 Choose distribution(选择分配)下,选择 CloudFront 分配。
-
选择 Save。
-
要将根域的 A 记录重定向到 CloudFront 分配,请对根域重复此过程,例如
example.com
。记录集的更新需要 2 – 48 小时才能生效。
-
要查看新的 A 记录是否已生效,请在 Web 浏览器中输入您的子域 URL,例如
http://www.example.com
。如果您的浏览器不再重定向至根域(例如,
http://example.com
),则说明新的 A 记录已生效。当新 A 记录生效时,由新 A 记录路由到 CloudFront 分配的流量不会重定向到根域。任何使用http://example.com
或http://www.example.com
引用站点的访问者都会重定向到最近的 CloudFront 边缘站点,在这里可体验更快速的下载。提示
浏览器可以缓存重定向设置。如果您认为新的 A 记录设置应该已经生效,但是您的浏览器仍然将
http://www.example.com
重定向至http://example.com
,请尝试清除浏览器的历史记录和缓存,然后关闭再重新打开浏览器应用程序,或使用其他 Web 浏览器。
(可选)步骤 3:检查日志文件
访问日志会告诉您有多少人正在访问网站。它们还包含有价值的业务数据,您可以使用 Amazon EMR 等其他服务分析这些数据。
CloudFront 日志存储在您在创建 CloudFront 分配并启用日志记录时所选择的存储桶和文件夹中。CloudFront 将在相应请求提出后的 24 小时内将日志写入您的日志存储桶。
查看网站的日志文件
-
通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
为网站选择日志记录存储桶的名称。
-
选择 CloudFront 日志文件夹。
-
先下载由 CloudFront 编写的
.gzip
文件,然后再打开这些文件。如果您仅出于练习目的创建网站,则可以删除您所分配的资源,使其不再产生费用。为此,请参阅 清理示例资源。删除 Amazon 资源后,您的网站将不再可用。