创建 Lightsail 内容分发网络分配
在本指南中,我们将介绍如何使用 Lightsail 控制台创建 Amazon Lightsail 分配,并介绍可以配置的分配设置。有关分配的更多信息,请参阅内容分发网络分配。
内容
先决条件
在开始创建分配之前,请满足以下先决条件:
-
根据您是在分配中使用实例、容器服务还是存储桶,完成以下其中一项操作。
-
创建 Lightsail 实例以托管您的内容。实例将用作分配的源。源存储内容的原始最终版本。有关更多信息,请参阅创建实例。
将 Lightsail 静态 IP 附加到实例。如果您停止并启动实例,则实例的默认公有 IP 地址会发生变化,这将中断您的分配与源实例之间的连接。如果您停止和启动实例,静态 IP 不会更改。有关更多信息,请参阅创建静态 IP 并将其附加到实例。
将您的内容和文件上传到实例。您的文件也称为对象,通常包括网页、图像和媒体文件,但可以是可通过 HTTP 提供的任何内容。
-
创建用于托管您的网站或 Web 应用程序的 Lightsail 容器服务。容器服务将用作分配的源。源存储内容的原始最终版本。有关更多信息,请参阅创建 Amazon Lightsail 容器服务。
-
创建 Lightsail 存储桶以存储静态内容。存储桶将用作分配的源。源存储内容的原始最终版本。有关更多信息,请参阅创建存储桶。
使用 Lightsail 控制台、AWS Command Line Interface(AWS CLI)和 AWS API 将文件上传到您的存储桶。有关上传文件的更多信息,请参阅将文件上传到存储桶。
-
-
(可选)创建 Lightsail 负载均衡器(如果网站需要容错能力)。将实例的多个副本附加到负载均衡器。您可以将负载均衡器(附加了一个或多个实例)配置为分配的源,而不是将实例配置为源。有关更多信息,请参阅创建负载均衡器并向其附加实例。
源资源
源是分配内容的确定来源。创建分配时,您可以选择 Lightsail 实例、容器服务、存储桶,或负载均衡器(附加了一个或多个实例),用于托管网站或 Web 应用程序的内容。
注意
目前,仅限 IPv6 的实例无法配置为 Lightsail 内容分发网络(CDN)分配的源。
每个分配只能选择一个源。您可以在创建分配后随时更改源。有关更多信息,请参阅更改分配的源。
源协议策略
源协议策略是在从源中提取内容时分配使用的协议策略。选择分配的源之后,您应确定在从源中提取内容时分配是使用超文本传输协议 (HTTP) 还是安全超文本传输协议 (HTTPS)。如果源没有进行 HTTPS 配置,则必须使用 HTTP。
您可以为分配选择以下源协议策略之一:
-
仅 HTTP - 分配仅使用 HTTP 访问源。这是默认设置。
-
仅 HTTPS - 分配仅使用 HTTPS 访问源。
编辑源协议策略的步骤包含在本指南的以下更改分配的源部分。
注意
当您选择 Lightsail 存储桶作为分配的源时,源协议策略默认为仅 HTTPS。当存储桶是分配的源时,您无法更改源协议策略。
缓存行为和缓存预设
缓存预设为在源上托管的内容类型自动配置分配设置。例如,选择最适合静态内容预设会自动将分配配置为最适合静态网站的设置。如果网站托管在 WordPress 实例上,则选择最适合 WordPress 预设可自动配置分配以使用 WordPress 网站。
注意
缓存预设选项在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
您可以为分配选择以下缓存预设之一:
-
最适合静态内容 - 此预设将分配配置为缓存所有内容。如果您在源上托管静态内容(例如静态 HTML 页面),或者对于每个访问网站的用户来说内容不会更改,则非常适合使用此预设。选择此预设后,将缓存分配的所有内容。
-
最适合动态内容 - 此预设将分配配置为除了在创建分配页面的目录和文件覆盖部分指定为缓存的文件,将不缓存任何内容。有关更多信息,请参阅本指南下文中的目录和文件覆盖。如果您在源上托管动态内容,或者每个访问网站或 Web 应用程序的用户可以更改内容,则非常适合使用此预设。
-
最适合 WordPress - 此预设将分配配置为除了 WordPress 实例的
wp-includes/
和wp-content/
目录中的文件,将不缓存任何内容。如果您的源是一个实例,其使用由 Bitnami 和 Automattic 认证的 WordPress 蓝图(不包括多站点蓝图),则非常适合使用此预设。有关此预设的更多信息,请参阅最适合 WordPress 的缓存预设。注意
无法选择自定义设置预设。如果您选择了预设,但随后手动修改分配的设置,则系统会自动为您选择该预设。
只能在 Lightsail 控制台中指定缓存预设。无法使用 Lightsail API、AWS CLI 和 SDK 指定。
最适合 WordPress 的缓存预设
当您选择使用 由 Bitnami 和 Automattic 认证的 WordPress蓝图作为发分配源的实例时,Lightsail 会询问您是否要将最适合 WordPress 的缓存预设应用于您的分配。如果您应用此预设,那么您的分配将自动配置为最适合使用 WordPress 网站。没有其他需要应用的分配设置。除了 WordPress 网站的 wp-includes/
和 wp-content/
目录中的文件,最适合 WordPress 的预设不会缓存任何内容。它还会将您的分配配置为每天清除缓存(缓存寿命为 1 天)、允许所有的 HTTP 方法、仅转发 Host
标头、不转发 Cookie 以及转发所有查询字符串。
重要
您必须在您的实例中编辑 WordPress 配置文件,以使您的 WordPress 网站使用您的分配。有关更多信息,请参阅配置 WordPress 实例以使用分配。
默认行为
默认行为指定分配如何处理内容缓存。系统会根据您选择的缓存预设,自动为您指定分配的默认行为。如果选择不同的默认行为,缓存预设会自动更改为自定义设置。
注意
默认行为选项在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
您可以为分配选择以下默认行为之一:
-
缓存所有内容 - 此行为将您的分配配置为缓存并将您的整个网站作为静态内容提供服务。如果源托管的内容不会因查看者而变化,或者您的网站没有使用 Cookie、标头或查询字符串来个性化内容,则非常适合使用此选项。
-
不缓存任何内容 - 此行为将您的分配配置为仅缓存源文件和您指定的文件夹路径。如果您的网站或 Web 应用程序使用 Cookie、标题和查询字符串为单个用户个性化内容,则非常适合使用此选项。如果选择此选项,您必须指定要缓存的目录和文件路径覆盖。
目录和文件覆盖
目录和文件覆盖可用于覆盖您选择的默认行为或添加例外。例如,如果您选择缓存所有内容,可通过覆盖指定分配不应缓存的目录、文件或文件类型。或者,如果您选择不缓存任何内容,可通过覆盖指定分配应缓存的目录、文件或文件类型。
在页面的目录和文件覆盖部分,您可以指定要缓存或不缓存的目录或文件的路径。使用星号可指定通配符目录 (path/to/assets/*
) 和文件类型(*.html
、*jpg
、*js
)。目录和文件路径区分大小写。
注意
目录和文件覆盖选项在您选择 Lightsail 存储桶作为分配的源时无法使用。将缓存存储在选定存储桶中的所有内容。
这些只是如何指定目录和文件覆盖的几个示例:
-
指定以下设置以缓存运行在 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 转发和查询字符串转发。指定的高级设置仅应用于分发缓存的目录和文件,包括指定为缓存的目录和文件覆盖。
注意
当您选择 Lightsail 存储桶作为分配的源时,无法在创建分配页面上使用高级缓存设置。我们会自动应用最适合存储桶中存储的静态内容的分配设置。但是,创建分配后您可以在分配管理页面中修改高级缓存设置。
您可以配置以下高级设置:
缓存寿命 (TTL)
控制在分配将另一个请求转发到源以确定内容是否已更新之前,内容在分配缓存中保留的时间。默认值为一天。减少此持续时间可以更好地提供动态内容。增加此持续时间意味着您的用户将获得更好的性能,因为更有可能从边缘站点直接提供文件。增加此持续时间还会降低源的负载,因为分配提取内容的频率更低。
注意
仅当来源没有向内容添加 HTTP 标头(如 Cache-Control max-age
、Cache-Control
s-maxage
和 Expires
)时才应用指定的缓存寿命值。
允许的 HTTP 方法
控制您的分配处理和转发到源的 HTTP 方法。HTTP 方法指示需要在源上执行的操作。例如,GET 方法从源检索数据,PUT 方法请求将所包含的实体存储在源上。
您可以为分配选择以下 HTTP 方法选项之一:
-
允许 GET、HEAD、OPTIONS、PUT、POST、PATCH 和 DELETE 方法
-
允许 GET、HEAD 和 OPTIONS 方法
-
允许 GET 和 HEAD 方法
分配会始终缓存对 GET 和 HEAD 请求的响应。如果您选择允许这些请求,则您的分配还会缓存对 OPTIONS 请求的响应。分配不会缓存对任何其他 HTTP 方法的响应。有关更多信息,请参阅 HTTPS 方法
重要
如果您将分配配置为允许支持的所有 HTTP 方法,则必须将源实例配置为处理所有方法。例如,如果由于要使用 POST 而将分配配置为允许这些方法,则必须配置源服务器以相应地处理 DELETE 请求,以便查看器无法删除您不希望删除的资源。有关更多信息,请搜索网站或 Web 应用程序的文档。
HTTP 标头转发
控制分配是否根据指定的标头值缓存内容,如果是,则要缓存哪些内容。HTTP 标头包含有关客户端浏览器、请求的页面、源等方面的信息。例如,Accept-Language
标头发送客户端的语言(例如 en-US
为英语),以便源可以用客户端语言响应内容(如果可用)。
您可以为分配选择以下 HTTP 标头选项之一:
-
不转发任何标头
-
仅转发我指定的标头
如果您选择不转发任何标头,则分配不会根据标头值缓存您的内容。无论您选择哪个选项,分配都会将特定标头转发到您的源并根据您转发的标头执行特定操作。有关分配如何处理标头转发的更多信息,请参阅 HTTP 请求标头和分配行为
Cookie 转发
控制您的分配是否将 Cookie 转发到源,如果是,则要转发哪些 Cookie。Cookie 包含发送到源的一小部分数据,例如访问者在源的 Web 页面上的操作信息,以及访问者提供的任何信息(例如他们的姓名和兴趣)。
您可以为分配选择以下 Cookie 转发选项之一:
-
不转发 Cookie
-
转发所有 Cookie
-
转发我指定的 Cookie
如果您选择转发所有 Cookie,不管您的应用程序使用多少 Cookie, 分配都会转发所有 Cookie。如果您选择转发我指定的 Cookie,则在显示的文本框中输入您希望分配转发的 Cookie 的名称。指定 Cookie 名称时可以使用以下通配符:
-
* 匹配 Cookie 名称中的 0 个或多个字符
-
? 与 Cookie 名称中的 1 个字符完全匹配
例如,假设对象的查看器请求包含一个名为 userid_
的 Cookie。其中,您的每个用户对于 member-number
member-number
均有一个唯一的值(userid_123
、userid_124
、userid_125
等)。您希望分配为每个成员缓存内容的单独版本。您可以通过将所有 Cookie 转发到源来完成该操作,但查看器请求包含一些您希望分配不要缓存的 Cookie。您可以指定以下值以作为 Cookie 名称,这会导致您的分配将所有以 userid_
开头的 Cookie 转发到源:userid_*
查询字符串转发
控制您的分配是否将查询字符串转发到源,如果是,则要转发哪些查询字符串。查询字符串是为将值分配给指定参数的一部分 URL。例如,https://example.com/over/there?name=ferret
URL 包含 name=ferret
查询字符串。当服务器收到此类页面的请求时,它可能会运行一个程序,将 name=ferret
查询字符串原封不动地传递给程序。问号将用作分隔符,而不是查询字符串的一部分。
您可以选择让您的分配不转发任何查询字符串,或者选择仅转发指定的查询字符串。如果源返回相同版本的内容,则无论查询字符串参数的值为何,请选择不转发查询字符串。这增加了分配可从缓存处理请求的可能性,将提高性能并降低源的负载。如果您的源服务器根据一个或多个查询字符串参数返回不同版本的内容,请选择此选项,以仅转发您指定的查询字符串。
分配计划
分配计划指定每月数据传输配额和分配成本。如果分配传输的数据超过计划的每月数据传输配额,则会向您收取超额费用。有关更多信息,请参阅 Lightsail 价格页面
为避免超额费用,请将分配的当前计划更改为不同的计划,以在分配超出每月配额之前提供更大的每月数据传输量。在每个 AWS 账单周期内,您只能更改一次分配套餐。有关在创建分配套餐后更改分配套餐的更多信息,请参阅更改分配套餐。
创建分配
完成以下过程以创建分配。
-
登录 Lightsail 控制台
。 -
在左侧导航窗格中,选择联网。
-
选择创建分配。
-
在页面的选择您的源部分,选择您在其中创建了源资源的 AWS 区域。
分配是全局资源。其可以引用任何 AWS 区域 中的源,并在全局范围内分发其内容。
-
选择您的源。源可以是 Lightsail 实例、容器服务、存储桶或负载均衡器(附加了一个或多个实例)。有关更多信息,请参阅源资源。
重要
如果您选择 Lightsail 容器服务作为分配的源,则 Lightsail 会自动将分配的原定设置域名添加为容器服务上的自定义域。这使流量能够在您的分配和容器服务之间进行路由。但是,在某些情况下,您可能需要手动将分配的原定设置域名添加到容器服务中。有关更多信息,请参阅将分配的原定设置域添加到容器服务。
-
(可选)要更改源协议策略,请选择在分配使用的当前源协议策略旁边显示的铅笔图标。有关更多信息,请参阅源协议策略。
此选项列在页面的选择源部分,在您为分配选择的源资源下面。
注意
当您选择 Lightsail 存储桶作为分配的源时,源协议策略默认为仅 HTTPS。当存储桶是分配的源时,您无法更改源协议策略。
-
选择分配的缓存行为(也称为缓存预设)。有关更多信息,请参阅缓存行为和缓存预设。
注意
缓存预设选项在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
-
(可选)选择显示所有设置以查看分配的其他缓存行为设置。
注意
缓存行为设置在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
-
(可选)选择分配的默认行为。有关更多信息,请参阅默认行为。
注意
默认行为选项在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
-
(可选)选择添加路径以将目录和文件覆盖添加到分配的缓存行为中。有关更多信息,请参阅目录和文件覆盖。
注意
目录和文件覆盖选项在您选择 Lightsail 存储桶作为分配的源时无法使用。我们会自动应用最适合存储桶中存储的静态内容的分配设置。
-
(可选)选择要为分配编辑的高级设置旁边显示的铅笔图标。有关更多信息,请参阅高级缓存设置。
注意
当您选择 Lightsail 存储桶作为分配的源时,无法在创建分配页面上使用高级缓存设置。我们会自动应用最适合存储桶中存储的静态内容的分配设置。但是,创建分配后您可以在分配管理页面中修改高级缓存设置。
-
选择您的分配计划。有关更多信息,请参阅分配计划。
-
为分配输入名称。
资源名称:
-
在您 Lightsail 账户的各个 AWS 区域 中必须是唯一的。
-
必须包含 2 到 255 个字符。
-
必须以字母数字字符或数字作为开头和结尾。
-
可以包括字母数字字符、数字、句点、连字符和下划线。
-
-
查看分配的成本。
-
选择创建分配。
将在片刻后创建您的分配。
后续步骤
在分配启动并运行后,我们建议您完成以下后续步骤。
-
如果分配的源是一个 WordPress 实例,您必须在您的实例中编辑 WordPress 配置文件,以使您的 WordPress 网站能够使用您的分配。有关更多信息,请参阅配置 WordPress 实例以使用分配。
-
(可选)在 Lightsail 控制台中创建 Lightsail DNS 区域以管理域的 DNS。这让您可以轻松地将域映射到 Lightsail 资源。有关更多信息,请参阅创建 DNS 区域以管理域的 DNS 记录。或者,您也可以继续在当前托管的位置托管域的 DNS。
-
创建域的 Lightsail SSL/TLS 证书以和分配一起使用。Lightsail 分配需要 HTTPS,因此您必须先为您的域请求 SSL/TLS 证书,然后才能将其用于分配。有关更多信息,请参阅创建分配的 SSL/TLS 证书。
-
为您的分配启用自定义域,以便将域用于您的分配。启用自定义域需要指定您为域创建的 Lightsail SSL/TLS 证书。这会将您的域添加到分配中并启用 HTTPS。有关更多信息,请参阅启用分配的自定义域。
-
将别名记录添加到域的 DNS 以开始将域的流量路由到您的分配。添加别名记录后,将通过您的分配对访问域的用户进行路由。有关更多信息,请参阅将域指向分配。
-
测试您的分配是否在缓存内容。有关更多信息,请参阅测试分配。