AWS for WordPress 插件入门 - Amazon CloudFront
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS for WordPress 插件入门

利用 AWS for WordPress 插件,您可以设置多个 AWS 服务,包括 Amazon CloudFront。利用 CloudFront,您可以通过缓存在世界各地的边缘站点中的内容为 WordPress 网站的访客提供加速查看体验。当访客访问您的网站时,CloudFront 会将他们路由到提供最低延迟的边缘站点,从而获得更快、更可靠的体验。

AWS for WordPress 插件创建了针对 WordPress 网站优化的 CloudFront 分配,使用多个缓存行为来处理您的网站上的不同类型的内容。该插件的 CloudFront 功能适用于托管在 WordPress.com 上的网站以及 Amazon Lightsail、Amazon EC2 或其他 Web 托管平台上的自托管式 WordPress 网站。

您还可以使用该插件设置其他 AWS 服务(如 Amazon PollyAmazon Translate),然后配置 CloudFront 以加速这些服务生成的内容。有关使用该插件设置 Amazon Polly 的更多信息,请参阅 Amazon Polly 开发人员指南 中的适用于 Amazon Polly 的 WordPress 插件。有关使用 CloudFront 加速 Amazon Polly 生成的内容的更多信息,请参阅(可选)为 Amazon Polly 内容创建 CloudFront 分配

先决条件

要使用 AWS for WordPress 插件,您需要一个 AWS 账户、一个 AWS Identity and Access Management (IAM) 用户和一个 WordPress 网站。

创建 AWS 账户

如果您已具有 AWS 账户,可以跳过此部分。否则,请创建一个。

如何创建 AWS 账户

  1. 打开 https://portal.amazonaws.cn/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

创建 IAM 用户

要使用 AWS for WordPress 插件,您必须为该插件创建一个 IAM 用户。IAM 用户是 AWS 账户下有权对 AWS 服务进行 API 调用的人员或应用程序。

注意

如果您没有使用 WordPress.com,而是具有 Amazon EC2 上的自托管式 WordPress 网站,则可以使用 IAM 角色来代替 IAM 用户。有关更多信息,请参阅 Amazon EC2 用户指南中的 Amazon EC2 的 IAM 角色

下面的过程包括将 IAM 策略 附加到 IAM 用户的各个步骤。IAM 策略是定义应用于用户的权限的文档。

创建 IAM 用户

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Users。然后选择添加用户

  3. 设置用户详细信息页面上,执行以下操作:

    1. 对于用户名,输入 AWSForWordPressPlugin

    2. 对于 Access type (访问类型),选择 Programmatic access (编程访问)

    3. 选择下一步: 权限

  4. 设置权限页面上,执行以下操作:

    1. 选择直接附加现有策略

    2. 在搜索框中,输入 WordPress,然后选中 AWSForWordPressPluginPolicy 旁边的复选框。

      注意

      AWSForWordPressPluginPolicy 是一个 AWS 托管策略,为用户提供使用 AWS for WordPress 插件中包括的所有功能的权限。将新功能添加到插件后,AWS 将更新此策略以包括使用新功能所需的权限。

    3. 选择下一步: 标签

  5. 选择 下一步: 审核

  6. 选择 Create user

  7. 选择下载 .csv 以将用户的凭证(访问密钥 ID 和秘密访问密钥)保存到您的计算机。配置 AWS for WordPress 插件需要这些信息。

    重要

    这是您可以保存用户的秘密访问密钥的唯一时间,因此请务必立即保存该密钥。

保护 IAM 用户的凭证

您在上一个部分中创建的 IAM 用户可以在您的 AWS 账户中执行以下操作:

  • 使用标签 "createdBy" : "AWSForWordPressPlugin" 创建、修改、标记、列出和删除 CloudFront 分配,并在这些分配中创建和列出失效。

  • 请求、标记、列出和删除美国东部(弗吉尼亚北部)地区中的 AWS Certificate Manager 证书。

  • 在美国东部(弗吉尼亚北部)地区中创建 AWS CloudFormation 堆栈,然后修改、列出和删除具有标签 "createdBy" : "AWSForWordPressPlugin" 的堆栈。

  • 使用 Amazon Polly 将文本转换为语音,然后列出可用的 Amazon Polly 语音。

  • 使用 Amazon Translate 将文本从一种语言翻译为另一种语言。

  • 确定是否存在特定 Amazon S3 存储桶。

  • 创建其名称以 audio_for_wordpressaudio-for-wordpress 开头的 Amazon S3 存储桶,然后在这些存储桶中创建、删除和列出对象。

重要

要防止未经授权的用户获取这些权限,请保护 IAM 用户的凭证。像密码一样对待秘密访问密钥;将其存储在安全的位置,并且不要与任何人共享。像密码一样,定期轮换访问密钥。如果秘密访问密钥意外泄漏,请立即将其删除。然后,您可以创建一个新的访问密钥来用于 AWS for WordPress 插件。

创建一个 WordPress 网站

如果您已具有一个 WordPress 网站,则可以向前跳到步骤 1:安装插件

如果您没有 WordPress 网站,则可以使用 WordPress.com 创建一个。要使用 AWS for WordPress 插件,您需要一个 WordPress.com 业务或电子商务计划。

您也可以使用 Amazon Lightsail、Amazon EC2 或其他 Web 托管平台,在自己的 Web 服务器上安装 WordPress 软件。托管您自己的 WordPress 网站涉及的步骤比使用 WordPress.com 更多,并且需要配置和管理 Web 服务器、负载均衡器、DNS 记录和 Web 服务器证书的能力。

无论您如何设置 WordPress 网站,都需要以下内容才能使用 AWS for WordPress 插件:

  • 您的网站必须具有自己的域名。域名也称为 Web 地址URL(统一资源定位器),是访客用于访问您的网站的地址。例如,Amazon 的域名为 amazon.com。在本主题中,我们使用 example.com 作为通用示例域名,但您的网站需要自定义域名。

  • 您的网站必须使用 HTTPS 运行。这是安全最佳实践,该插件假定您的网站使用 HTTPS 运行。要检查,请使用 HTTPS 转到您的网站地址(例如,https://example.com),并确保您的网站正确显示。

有关说明如何使用 Amazon Lightsail 在 AWS 上创建 WordPress 网站的分步教程,请参阅 AWS 网络和内容交付博客上的使用适用于 WordPress 的 AWS 插件加速 WordPress 以及 CloudFront

如果您的网站具有域名并使用 HTTPS 运行,请继续执行以下部分。

步骤 1:安装插件

在安装该插件之前,请确保完成先决条件

安装该插件

  1. 登录到您的 WordPress 网站的管理控制面板,也称为 WP 管理

  2. 选择 Plugins (插件)

    • 如果您已具有 Amazon AI(该插件以前的名称)或 AWS for WordPress 插件:

      1. 选中 Amazon AIAWS for WordPress 旁边的复选框。

      2. Bulk Action (批量操作) 菜单中,选择 Update (更新),然后选择 Apply (应用)

    • 如果您没有 Amazon AIAWS for WordPress 插件:

      1. 选择 Add New (新增)

      2. 在搜索框中,输入 AWS for WordPress

      3. 找到 AWS for WordPress 插件。选择 Install Now (立即安装),然后选择 Activate (激活)

激活该插件后,继续以下部分来配置和使用它。

步骤 2:配置 CloudFront 并使之与该插件配合使用

当您将 CloudFront 与 AWS for WordPress 插件配合使用来加速站点时,该插件使用子域(也称为备用域名别名记录)通过 CloudFront 发送您的网站的流量。这可以通过更快地加载资源来减少延迟并改善查看体验。

如果没有该插件的站点加速,网站查看者的所有流量将转到托管 WordPress 网站的服务器。完成以下过程中的步骤后,您可以启用该插件的站点加速,这为查看者提供了两个用于访问您的网站的选项:

  • 当查看者使用您的网站的域名(例如 example.com)时,除了网站的索引页和一些小图像文件之外,所有流量都会通过 CloudFront。

  • 当查看者使用您的网站的备用域名(例如 www.example.com)时,所有流量都会通过 CloudFront。

使用任何一个域,您的网站的查看者都可获得更低的延迟和更快、更可靠的查看体验。建议告诉查看者使用您的网站的备用域名。下图显示了在使用和未使用该插件的站点加速情况下,您的查看者的流量。


					网站查看者的流量转到 WordPress 网站主机的图。

未使用该插件的站点加速


					网站查看者的流量转到 CloudFront 边缘站点的图。

使用该插件的站点加速

配置 CloudFront 并使之与该插件配合使用(启用站点加速)

  1. 登录到您的 WordPress 网站的管理控制面板,也称为 WP 管理

  2. 在左侧导航中,选择 AWS

  3. 粘贴或输入您之前保存的访问密钥 ID 和秘密访问密钥,然后选择 Save Changes (保存更改)

    注意

    如果您将 WordPress 托管在 Amazon EC2 上,则可以跳过此步骤并使用 IAM 角色来代替 IAM 用户。在这种情况下,请将这两个字段留空。有关 IAM 角色的更多信息,请参阅 Amazon EC2 用户指南 中的适用于 Amazon EC2 的 IAM 角色

    注意

    无论您为 AWS Region (AWS 区域) 选择了什么,该插件的 CloudFront 功能都会在美国东部(弗吉尼亚北部)地区中创建所有资源。

  4. 在导航窗格中,选择 CloudFront

  5. CloudFront Setup (CloudFront 设置) 页面上,执行以下操作:

    1. 如有必要,对于 Origin Domain Name (源域名),输入您的网站的域名,例如 example.com

    2. 对于 CloudFront Alternate Domain Name (CloudFront 备用域名),输入查看者将用于您的网站加速体验的子域。建议在您的网站的域名前使用 www,例如 www.example.com

    3. 选择 Initiate Setup (启动设置)

  6. CloudFront 使用 AWS Certificate Manager 为备用域名创建证书,并且您必须在请求后的 72 小时内验证证书。通过添加该插件在设置页面上显示的 DNS 记录来执行此操作。添加此验证记录的过程因您的 DNS 服务提供商而异。如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何使用自定义条目更新 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的使用 Amazon Route 53 控制台创建记录

    添加 DNS 记录后,返回到设置页面,然后选择 Check status of SSL certificate (检查 SSL 证书的状态)

    当您完成此步骤后,CloudFront 将设置针对 WordPress 优化的分配。此过程可能需要一些时间才能全局部署。设置页面每十秒自动刷新一次,以便在部署进行过程中保持更新。

  7. 部署完成后,创建一个 DNS 记录以将您的备用域名(例如,www.example.com)指向您的新 CloudFront 分配。通过添加该插件在设置页面上显示的 DNS 记录来执行此操作。添加此验证记录的过程因您的 DNS 服务提供商而异。如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何使用自定义条目更新 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的使用 Amazon Route 53 控制台创建记录

    添加 DNS 记录后,返回到设置页面,然后选择 Check status of CloudFront DNS record (检查 CloudFront DNS 记录的状态)

  8. 选择 Activate Site Acceleration (激活站点加速),然后选择 Save Changes (保存更改)

当您激活站点加速时, AWS for WordPress 插件将您的网站配置为从您的 CloudFront 分配提供网站资源,例如 CSS 和 JavaScript 文件以及图像。通过从专用浏览窗口查看您的网站,或通过使用 WordPress 的管理模式之外的不同浏览器,您可以验证该插件是否为查看者加速了您的网站。请确保您使用备用域名(例如 www.example.com)导航到您的网站。

(可选)停用站点加速

您可以停用站点加速以从 Web 服务器主机提供您的网站的所有资源,绕过 CloudFront 分配。这使您的分配完好无损,并可在您选择重新激活该插件的站点加速时使用。

警告

在停用站点加速之前,编辑备用域名(例如 www.example.com)的 DNS 记录,以使其指向您的网站的域(例如 example.com)。如果您没有首先执行此操作,您的网站可能会停机或出现问题。编辑 DNS 记录后,请等待长于记录的生存时间 (TTL) 值的时间,然后再停用站点加速。

如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何编辑 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的编辑记录

停用站点加速

  1. 登录到您的 WordPress 网站,然后选择 WP Admin (WP 管理)

  2. 在导航窗格中,选择 AWS

  3. 在导航窗格中,选择 CloudFront

  4. 清除 Activate Site Acceleration (激活站点加速) 复选框,然后选择 Save Changes (保存更改)

停用站点加速是可逆的。要重新激活它,请选中 Activate Site Acceleration (激活站点加速) 复选框,然后选择 Save Changes (保存更改)

(可选)删除站点加速并删除 CloudFront 分配

您可以使用 AWS for WordPress 插件来删除 CloudFront 分配。这不可逆。要再次使用 AWS for WordPress 插件进行站点加速,您必须重新配置该插件来创建新的 CloudFront 分配。

警告

在删除 CloudFront 分配之前,编辑备用域名(例如 www.example.com)的 DNS 记录,以使其指向您的网站的域(例如 example.com)。如果您没有首先执行此操作,您的网站可能会停机或出现问题。编辑 DNS 记录后,请等待长于记录的生存时间 (TTL) 值的时间,然后再删除您的 CloudFront 分配。

如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何编辑 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的编辑记录

删除站点加速并删除 CloudFront 分配

  1. 登录到您的 WordPress 网站,然后选择 WP Admin (WP 管理)

  2. 在导航窗格中,选择 AWS

  3. 在导航窗格中,选择 CloudFront

  4. 选择 Remove Site Acceleration (删除站点加速),然后选择 OK (确定)

完成这些步骤后, AWS for WordPress 插件将删除您的 CloudFront 分配。这可能需要几分钟的时间才能完成。完成此过程后,您可以选择打开 AWS 管理控制台来验证是否已删除该插件创建的 CloudFront、AWS Certificate Manager 和 AWS CloudFormation 资源。

(可选)停用并删除该插件

您可以停用 AWS for WordPress 插件以停止对 CloudFront 和其他 AWS 服务使用其所有功能。您也可以删除该插件,以从您的 WordPress 网站完全删除它。

警告

在停用并删除该插件之前,编辑备用域名(例如 www.example.com)的 DNS 记录,以使其指向您的网站的域(例如 example.com)。如果您没有首先执行此操作,您的网站可能会停机或出现问题。编辑 DNS 记录后,请等待长于记录的生存时间 (TTL) 值的时间,然后再停用并删除该插件。

如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何编辑 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的编辑记录

注意

如果您在没有首先删除站点加速的情况下停用并删除该插件,则该插件不会删除它创建的 CloudFront、AWS Certificate Manager 和 AWS CloudFormation 资源。这些资源将保留在您的 AWS 账户中,并且您需要为超出 AWS 免费套餐的任何使用量付费。要在删除该插件之前删除这些资源,请参阅(可选)删除站点加速并删除 CloudFront 分配

停用 AWS for WordPress 插件

  1. 登录到您的 WordPress 网站,然后选择 WP Admin (WP 管理)

  2. 选择 Plugins (插件)

  3. 找到 AWS for WordPress 插件,然后选择 Deactivate (停用)

    停用插件是可逆的。要重新激活它,请选择 Activate (激活)

  4. 要完全删除 AWS for WordPress 插件,请选择 Delete (删除)

(可选)为 Amazon Polly 内容创建 CloudFront 分配

如果您将 AWS for WordPress 插件与 Amazon Polly 配合使用,可以创建一个 CloudFront 分配来加速 Amazon Polly 生成的音频内容。有关将该插件与 Amazon Polly 配合使用的更多信息,请参阅 Amazon Polly 开发人员指南 中的适用于 Amazon Polly 的 WordPress 插件

为 Amazon Polly 音频创建 CloudFront 分配

  1. 登录到您的 WordPress 网站的管理控制面板,也称为 WP 管理

  2. 在左侧导航中,选择 AWS

  3. Cloud Storage (云存储) 部分中,记下您的 S3 存储桶名称。它将以 audio-for-wordpressaudio_for_wordpress 开头。您需要此存储桶名称来完成以下步骤。

  4. 登录 AWS 管理控制台,通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/

  5. 选择 Create Distribution

  6. Web 分配选择 Get Started (入门)

  7. 对于 Origin Domain Name (源域名),选择您在上一步中记下其名称的 Amazon S3 存储桶。

  8. 滚动到页面底部,然后选择 Create Distribution (创建分配)

  9. 选择您在上一步中创建的分配,然后记下该分配的 Domain Name (域名)。您需要此域名来完成以下步骤。

  10. 登录到您的 WordPress 网站的管理控制面板,也称为 WP 管理

  11. 在左侧导航中,选择 AWS

  12. 对于 Amazon CloudFront (CDN) domain name (Amazon CloudFront (CDN) 域名),请输入您在上一步中记下的域名。

  13. 选择 Save Changes

故障排除

如果您遇到与 AWS for WordPress 插件有关的问题,以下主题可帮助您解决这些问题。要报告错误或获取这些主题未涵盖的其他问题的帮助,请在 GitHub 上打开问题

无法连接到 AWS

该插件可能会显示以下错误:Can't connect to AWS.Check your credentials and make sure your AWS account is active. (无法连接到 AWS。请检查您的凭证并确保您的 AWS 账户处于活动状态。) 如果您看到此错误,请尝试以下操作:

未授权用户

该插件可能会显示以下错误消息:

  • Error in Setup (设置出错)

  • AccessDenied

  • User: <user ARN> is not authorized to perform <action> (用户 <用户 ARN> 无权执行 <操作>)

如果您看到其中一个错误,请确保您为该插件创建的 IAM 用户具有正确的权限。有关更多信息,请参阅 创建 IAM 用户

CloudFront 设置页面为空白

当您导航到该插件的 CloudFront 设置页面时,该页面可能是空白的。这意味着您没有在该插件的 General configuration (常规配置) 页面中输入您的 AWS 访问密钥和 AWS 私有密钥。有关更多信息,请参阅步骤 2:配置 CloudFront 并使之与该插件配合使用

DescribeCertificate 错误

该插件可能会显示以下错误消息:

  • Error in Setup (设置出错)

  • Found 1 error while validating the input provided for the DescribeCertificate operation: [CertificateArn] expected string length to be >= 20, but found string length of 0 (在验证为 DescribeCertificate 操作提供的输入时发现 1 个错误: [CertificateArn] 需要字符串长度 >= 20,但发现字符串长度为 0)

如果您看到其中一个错误,请选择 Restart Setup (重新启动安装程序),然后确保您为 Origin Domain Name (源域名)CloudFront Alternate Domain Name (CloudFront 备用域名) 输入了域名而不是 IP 地址。有关更多信息,请参阅步骤 2:配置 CloudFront 并使之与该插件配合使用

AWS CloudFormation 错误

该插件可能会显示以下错误消息:

  • Caught exception in method AmazonAI_Cloudformation (在 AmazonAI_Cloudformation 方法中捕获异常)

  • Stack is in an unexpected state.CloudFront Distribution state is: <distribution state> and Stack state is: stack state (堆栈处于意外状态。CloudFront 分配状态为: <分配状态>,堆栈状态为: 堆栈状态)

如果您看到其中一个错误,请选择 Restart Setup (重新启动安装程序) 来重试。如果您可以轻松地使用 AWS CloudFormation 控制台来诊断错误,则可以打开该控制台来了解什么出错了。

CloudFront 分配部署似乎卡住了

设置站点加速时,该插件可能会显示 CloudFront Distribution Deployment (CloudFront 分配部署) 步骤很长一段时间,可能看起来像该插件在此步骤卡住了。此步骤可能需要几分钟的时间才能完成。该插件在此步骤中每十秒刷新一次,并显示如下消息:Last updated at <date and time of last update> (上次更新时间为 <上次更新的日期和时间>)。查找此消息以查看该插件上次刷新页面的时间。如果是在过去一分钟内,建议您继续等待此步骤完成。如果该插件在一段时间内没有刷新,您可以尝试重新加载页面。

备用域不起作用

如果您已使用该插件设置完 CloudFront,但您的备用域名(例如 www.example.com)不起作用,请确保您在 DNS 记录中添加了别名记录。如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何使用自定义条目更新 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的使用 Amazon Route 53 控制台创建记录

如果您使用该插件删除了 CloudFront 分配,并且您的备用域名(例如 www.example.com)不起作用,请确保您更新了 DNS 记录,以使备用域名重新指向您的网站的顶点域(例如 example.com),并且您等待的时间超过了 DNS 记录的生存时间 (TTL) 值。如果您使用 WordPress.com 托管服务,请参阅它们的文档,了解有关如何使用自定义条目更新 DNS 记录的信息。如果您对 DNS 使用 Amazon Route 53,请参阅 Amazon Route 53 开发人员指南 中的使用 Amazon Route 53 控制台创建记录

找不到 AWS 资源

该插件的 CloudFront 功能可在多个 AWS 服务(包括 CloudFront、AWS Certificate Manager 和 AWS CloudFormation)中创建资源。如果您在 AWS 管理控制台中查找这些资源或使用 API 列出这些资源,请确保您使用美国东部(弗吉尼亚北部)地区 (us-east-1)。