使用 Amazon CloudFront 为网站提速
您可以使用 Amazon CloudFront
CloudFront 会将内容在边缘站点上缓存您指定的时间。如果访问者请求已过期的缓存内容,CloudFront 会检查来源服务器,确定该内容是否有更新的版本可用。如果有更新的版本,则 CloudFront 将新版本复制到该边缘站点。当访问者请求内容时,您对原始内容所做的更改便会复制到边缘站点。
在没有 Route 53 的情况下使用 CloudFront
本页面上的教程使用 Route 53 来指向您的 CloudFront 分配。但是,如果您想在不使用 Route 53 的情况下使用 CloudFront 提供托管在 Amazon S3 存储桶中的内容,请参阅 Amazon CloudFront Tutorials: Setting up a Dynamic Content Distribution for Amazon S3
使用 AWS CloudFormation 模板自动执行设置过程
有关使用 AWS CloudFormation 模板配置安全静态网站以创建 CloudFront 分配来为您的网站提供服务的更多信息,请参阅《Amazon CloudFront 开发人员指南》中的安全静态网站入门。
步骤 1:创建 CloudFront 分配
首先,创建 CloudFront 分配。这将使您的网站可供全球各地的数据中心使用。
使用 Amazon S3 源创建分配
-
通过 打开 CloudFront 控制台https://console.aws.amazon.com/cloudfront/v4/home
-
选择 Create Distribution(创建分配)。
-
在 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 对象所有权的强制存储桶拥有者设置来禁用 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
文件,然后再打开这些文件。如果您仅出于练习目的创建网站,则可以删除您所分配的资源,使其不再产生费用。为此,请参阅 清理示例资源。删除 AWS 资源后,您的网站将不再可用。