为 Lightsail 发行版配置缓存 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Lightsail 发行版配置缓存

缓存行为允许您配置 Amazon Lightsail 发行版从您的来源缓存或未缓存的内容。例如,您可以指定缓存源中的各个目录、文件或文件类型。您还可以指定已转发到源的 HTML 方法和标头。在本指南中,我们将介绍如何更改分配的行为。有关分配的更多信息,请参阅内容分发网络分配

内容

缓存预设

缓存预设为在源上托管的内容类型自动配置分配设置。例如,选择最适合静态内容预设会自动将分配配置为最适合静态网站的设置。如果您的网站托管在 WordPress 实例上,请选择 “最适合 WordPress预设”,将您的发行版自动配置为与您的 WordPress 网站配合使用。

您可以为分配选择以下缓存预设之一:

  • 最适合静态内容 - 此预设将分配配置为缓存所有内容。如果您在源上托管静态内容(例如静态 HTML 页面),或者对于每个访问网站的用户来说内容不会更改,则非常适合使用此预设。选择此预设后,将缓存分配的所有内容。

  • 最适合动态内容 - 此预设将分配配置为除了在创建分配页面的目录和文件覆盖部分指定为缓存的文件,将不缓存任何内容。有关更多信息,请参阅本指南下文中的目录和文件覆盖。如果您在源上托管动态内容,或者每个访问网站或 Web 应用程序的用户可以更改内容,则非常适合使用此预设。

  • 最适 WordPress合-此预设将您的发行版配置为只缓存 WordPress实例wp-includes/wp-content/目录中的文件。如果您的来源是使用 Certified by Bitnami 和 Automattic 蓝图(不包括多站点蓝图)的实例,则此预设非常理想。WordPress 有关此预设的更多信息,请参阅最适合 WordPress缓存预设

    注意

    无法选择自定义设置预设。如果您选择了预设,但随后手动修改分配的设置,则系统会自动为您选择该预设。

只能在 Lightsail 控制台中指定缓存预设。无法使用 Lightsail API 和软件开发工具包 AWS CLI进行指定。

最适合 WordPress缓存预设

当你选择一个使用 Certified by Bitnami 和 Automattic 蓝图作为发行版来源的实例时,Lightsail 会询问你是否要将最适合 WordPress缓存的预设应用于你的分发。WordPress 如果您应用现在,则您的发行版将自动配置为最适合您的 WordPress 网站。没有其他需要应用的分配设置。最适合 WordPress 预设为除了 WordPress网站wp-includes/wp-content/目录中的文件之外什么都不缓存。它还会将您的分配配置为每天清除缓存(缓存寿命为 1 天)、允许所有的 HTTP 方法、仅转发 Host 标头、不转发 Cookie 以及转发所有查询字符串。

重要

您必须编辑实例中的 WordPress 配置文件才能使您的 WordPress网站与您的发行版配合使用。有关更多信息,请参阅配置您的 WordPress实例以与您的分配配合使用。

默认行为

默认行为指定分配如何处理内容缓存。系统会根据您选择的缓存预设,自动为您指定分配的默认行为。如果选择不同的默认行为,缓存预设会自动更改为自定义设置

您可以为分配选择以下默认行为之一:

  • 缓存所有内容 - 此行为将您的分配配置为缓存并将您的整个网站作为静态内容提供服务。如果源托管的内容不会因查看者而变化,或者您的网站没有使用 Cookie、标头或查询字符串来个性化内容,则非常适合使用此选项。

  • 不缓存任何内容 - 此行为将您的分配配置为仅缓存源文件和您指定的文件夹路径。如果您的网站或 Web 应用程序使用 Cookie、标题和查询字符串为单个用户个性化内容,则非常适合使用此选项。如果选择此选项,您必须指定要缓存的目录和文件路径覆盖

目录和文件覆盖

目录和文件覆盖可用于覆盖您选择的默认行为或添加例外。例如,如果您选择缓存所有内容,可通过覆盖指定分配不应缓存的目录、文件或文件类型。或者,如果您选择不缓存任何内容,可通过覆盖指定分配应缓存的目录、文件或文件类型。

在页面的目录和文件覆盖部分,您可以指定要缓存或不缓存的目录或文件的路径。使用星号可指定通配符目录 (path/to/assets/*) 和文件类型(*.html*jpg*js)。目录和文件路径区分大小写。

以下是如何指定目录和文件覆盖的几个示例:

  • 指定以下内容以缓存在 Lightsail 实例上运行的 Apache Web 服务器的文档根目录中的所有文件。

    var/www/html/
  • 指定以下设置以仅缓存 Apache Web 服务器文档根目录中的索引页面。

    var/www/html/index.html
  • 指定以下设置以仅缓存 Apache Web 服务器文档根目录中的 .html 文件。

    var/www/html/*.html
  • 指定以下设置以仅缓存 Apache Web 服务器文档根目录的镜像子目录中的 .jpg、.png 和 .gif 文件。

    var/www/html/images/*.jpg
    var/www/html/images/*.png
    var/www/html/images/*.gif

    指定以下设置以缓存 Apache Web 服务器文档根目录的镜像子目录中的所有文件。

    var/www/html/images/

高级缓存设置

高级设置可用于指定分配中内容的缓存寿命、允许的 HTTP 方法、HTTP 标头转发、Cookie 转发和查询字符串转发。指定的高级设置仅应用于分配缓存的目录和文件,包括指定为缓存的目录和文件覆盖。

您可以配置以下高级设置:

缓存寿命 (TTL)

控制在分配将另一个请求转发到源以确定内容是否已更新之前,内容在分配缓存中保留的时间。默认值为一天。减少此持续时间可以更好地提供动态内容。增加此持续时间意味着您的用户将获得更好的性能,因为更有可能从边缘站点直接提供文件。增加此持续时间还会降低源的负载,因为分配提取内容的频率更低。

注意

仅当来源没有向内容添加 HTTP 标头(如 Cache-Control max-ageCache-Control s-maxageExpires)时才应用指定的缓存寿命值。

允许的 HTTP 方法

控制您的分配处理和转发到源的 HTTP 方法。HTTP 方法指示需要在源上执行的操作。例如,GET 方法从源检索数据,PUT 方法请求将所包含的实体存储在源上。

您可以为分配选择以下 HTTP 方法选项之一:

  • 允许 GET、HEAD、OPTIONS、PUT、POST、PATCH 和 DELETE 方法

  • 允许 GET、HEAD 和 OPTIONS 方法

  • 允许 GET 和 HEAD 方法

分配会始终缓存对 GET 和 HEAD 请求的响应。如果您选择允许这些请求,则您的分配还会缓存对 OPTIONS 请求的响应。分配不会缓存对任何其他 HTTP 方法的响应。

重要

如果您将分配配置为允许支持的所有 HTTP 方法,则必须将源实例配置为处理所有方法。例如,如果由于要使用 POST 而将分配配置为允许这些方法,则必须配置源服务器以相应地处理 DELETE 请求,以便查看器无法删除您不希望删除的资源。有关更多信息,请搜索网站或 Web 应用程序的文档。

HTTP 标头转发

控制分配是否根据指定的标头值缓存内容,如果是,则要缓存哪些内容。HTTP 标头包含有关客户端浏览器、请求的页面、源等方面的信息。例如,Accept-Language 标头发送客户端的语言(例如 en-US 为英语),以便源可以用客户端语言响应内容(如果可用)。

您可以为分配选择以下 HTTP 标头选项之一:

  • 不转发任何标头

  • 仅转发我指定的标头

如果您选择不转发任何标头,则分配不会根据标头值缓存您的内容。无论您选择哪个选项,分配都会将特定标头转发到您的源并根据您转发的标头执行特定操作。

Cookie 转发

控制您的分配是否将 Cookie 转发到源,如果是,则要转发哪些 Cookie。Cookie 包含发送到源的一小部分数据,例如访问者在源的 Web 页面上的操作信息,以及访问者提供的任何信息(例如他们的姓名和兴趣)。

您可以为分配选择以下 Cookie 转发选项之一:

  • 不转发 Cookie

  • 转发所有 Cookie

  • 转发我指定的 Cookie

如果您选择转发所有 Cookie,不管您的应用程序使用多少 Cookie, 分配都会转发所有 Cookie。如果您选择转发我指定的 Cookie,则在显示的文本框中输入您希望分配转发的 Cookie 的名称。指定 Cookie 名称时可以指定以下通配符:

  • * 匹配 Cookie 名称中的 0 个或多个字符

  • ? 与 Cookie 名称中的 1 个字符完全匹配

例如,假设对象的查看器请求包含一个名为 userid_member-number 的 Cookie。其中,您的每个用户对于 member-number 均有一个唯一的值(userid_123userid_124userid_125 等)。您希望分配为每个成员缓存内容的单独版本。您可以通过将所有 Cookie 转发到源来完成该操作,但查看器请求包含一些您希望分配不要缓存的 Cookie。您可以指定以下值以作为 Cookie 名称,这会导致您的分配将所有以 userid_ 开头的 Cookie 转发到源:userid_*

查询字符串转发

控制您的分配是否将查询字符串转发到源,如果是,则要转发哪些查询字符串。查询字符串是为将值分配给指定参数的一部分 URL。例如,https://example.com/over/there?name=ferret URL 包含 name=ferret 查询字符串。当服务器收到此类页面的请求时,它可能会运行一个程序,将 name=ferret 查询字符串原封不动地传递给程序。问号将用作分隔符,而不是查询字符串的一部分。

您可以选择让您的分配不转发任何查询字符串,或者选择仅转发指定的查询字符串。如果源返回相同版本的内容,则无论查询字符串参数的值为何,请选择不转发查询字符串。这增加了分配可从缓存处理请求的可能性,将提高性能并降低源的负载。如果源服务器根据一个或多个查询字符串参数返回不同版本的内容,则选择仅转发您指定的查询字符串。

更改分配的缓存行为

完成以下过程以更改分配的缓存行为。

  1. 登录 Lightsail 控制台

  2. 在 Lightsail 主页上,选择联网选项卡。

  3. 选择要为其更改默认缓存行为的分配名称。

  4. 在分配的管理页面上选择缓存选项卡。

  5. 在页面的配置缓存部分,为您的分配选择缓存预设。有关更多信息,请参阅缓存预设

  6. 选择更改默认缓存行为以更改分配的默认行为。然后,为您的分配选择默认行为。有关更多信息,请参阅默认行为

  7. 选择添加路径以将目录和文件覆盖添加到分配的缓存行为中。有关更多信息,请参阅目录和文件覆盖

  8. 选择要为分配编辑的高级设置旁边显示的铅笔图标。有关更多信息,请参阅高级缓存设置

当您将更改保存到您的分配配置中时,分配会开始将更改传播到所有边缘站点。在您的配置在边缘站点中经更新前,您的分配将继续根据先前的配置从该站点提供内容。在您的配置在边缘站点已更新后,您的分配将立即根据新的配置从该站点提供内容。

您的更改不会立即传播到每个边缘站点。传播完成后,分配的状态将从InProgress变为 “已启用”。当分配传播您的更改时,我们无法确定一个指定边缘站点是根据先前配置还是新配置提供内容。