跳转到内容
搜索文档

分层缓存

最后更新 查看 MarkdownAgent 设置

分层缓存利用 Cloudflare 网络的规模,通过大幅提高缓存命中率来减少对客户源站服务器的请求。Cloudflare 在全球拥有数据中心,在非常靠近最终用户的地方缓存内容。但是,如果某段内容不在缓存中,Cloudflare 边缘数据中心必须联系源站服务器以接收可缓存内容。

分层缓存通过将 Cloudflare 的数据中心划分为下层和上层层次结构来工作。如果内容未在下层数据中心(通常是最靠近访问者的数据中心)缓存,下层必须向上层询问是否有该内容。如果上层没有内容,只有上层可以向源站请求内容。此做法通过限制可以向源站请求内容的数据中心数量来提高带宽效率,减少源站负载并使网站运营成本更低。

此外,分层缓存集中与源站服务器的连接,使其来自少量数据中心而非完整网络位置集合。这导致使用服务器资源的开放连接更少。

要启用分层缓存,请参阅启用分层缓存

分层缓存拓扑

Cloudflare 允许您选择缓存拓扑,以便控制源站如何连接到 Cloudflare 的数据中心。这有助于确保更高的缓存命中率、更少的源站连接以及降低互联网延迟。以下是我们提供的选项详情。

智能分层缓存

Smart Tiered Cache 会动态为您网站的每个源站选择单个最近的上层 tier,无需任何配置,并使用 Cloudflare 自研的性能与路由数据。Cloudflare 会收集每个发往源站的请求的延迟数据,并利用这些延迟数据评估任意上层数据中心与源站的连接质量。因此,Cloudflare 可以选择延迟最低的数据中心作为该源站的上层 tier。

公有云源站

托管在公有云提供商(AWS、GCP、Azure 或 Oracle Cloud)上的源站通常使用 anycast 或区域单播网络,这会导致 Smart Tiered Cache 无法仅通过延迟探测确定源站位置。为解决此问题,您可以设置 cloud region hint(云区域提示),告知 Smart Tiered Cache 您的源站所在的云提供商和区域。Smart Tiered Cache 随后会选择靠近该云区域的主上层数据中心,并在其他位置选择备用节点以提高韧性。要设置 cloud region hint,请参阅设置 cloud region hint

与 Load Balancing 的交互

虽然 Smart Tiered Cache 会为每个源站选择一个 Upper Tier,但在使用 Load Balancing 时,Smart Tiered Cache 会为整个 Load Balancing Pool 选择单个最佳 Upper Tier。

注意事项

启用 Smart Tiered Cache 后,更新源站 IP/DNS 记录时需格外谨慎。根据所做更改,已分配的上层 tier 可能会发生变化,导致 MISS 率上升,因为新上层 tier 需要重新填充缓存。如果源站切换到 anycast 网络之后,Smart Tiered Cache 的效果会显著降低,除非您设置了 cloud region hint

通用全球分层缓存

通用全球拓扑允许 Cloudflare 的所有全球数据中心充当上层网络。此拓扑有助于降低远程访客的长尾延迟。

区域分层缓存

Regional Tiered Cache 为拥有全球流量分布、希望更快提供内容的客户提供额外的缓存层,避免在下层 tier 出现缓存 MISS 时,因从距离较远的上层 tier 获取内容而产生网络延迟。

Regional Tiered Cache 会指示 Cloudflare 在访问区域外的上层 tier 之前,先检查靠近下层 tier 的区域 hub 数据中心。

这有助于提升在一个或两个区域中具有上层的智能自定义分层缓存拓扑的性能。区域分层缓存对于像通用全球分层缓存这样在多个区域拥有众多上层的客户没有明显收益。

自定义分层缓存

自定义分层缓存允许企业客户与其账户团队合作,设置适合特定需求的自定义拓扑,例如您拥有靠近的上层或具有独特的流量模式。如需自定义拓扑,请联系您的账户团队。

可用性

FreeProBusinessEnterprise

Tiered Cache

Yes

Yes

Yes

Yes

Smart Topology

Yes

Yes

Yes

Yes

Generic Global Topology

No

No

No

Yes

Regional Tiered Cache

No

No

No

Yes

Custom Topology

No

No

No

Yes

带宽联盟

企业客户可以通过分层缓存覆盖带宽联盟配置。对于所有其他用户,带宽联盟优先。启用分层缓存仍是有价值的选择,因为带宽联盟并非始终可用,在不可用的情况下将使用分层缓存配置。

启用分层缓存

您可以在仪表板中或通过 API 启用分层缓存。

在仪表板中启用分层缓存

  1. 在 Cloudflare 仪表板中,前往 Tiered Cache(分层缓存) 页面。

    Go to Tiered Cache ↗
  2. 分层缓存中,将开关切换为已启用

  3. 分层缓存拓扑中,您可以控制源站如何连接到 Cloudflare 的数据中心。您可以选择:

    • 上层缓存 - 您可以在智能分层缓存拓扑或通用全球分层缓存拓扑之间选择。
    • 中间层缓存 - 如果您已选择智能或自定义分层缓存拓扑,现在可以启用区域分层缓存。
    • 自定义分层缓存 - 允许您与 Cloudflare 支持团队合作,设置适合特定需求的自定义拓扑。
    • 禁用分层缓存
分层缓存拓扑仪表板

通过 API 启用分层缓存

要通过 API 启用分层缓存,请使用以下 cURL 示例:

Patch Tiered Caching settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/argo/tiered_caching" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"value": "on"
	}'

您还可以通过 API 配置分层缓存拓扑,例如:

启用智能分层缓存

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Write
Patch Smart Tiered Cache settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/tiered_cache_smart_topology_enable" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"value": "on"
	}'

启用区域分层缓存

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Write
Change Regional Tiered Cache settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/regional_tiered_cache" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"value": "on"
	}'

有关分层缓存的更多 API 示例和配置选项,请参阅 API 文档

设置云区域提示

如果您的源站托管在公有云提供商上,请设置云区域提示,以便智能分层缓存可以为您的云区域选择最佳上层。有关需要此操作的背景,请参阅公有云源站

云区域提示适用于所有计划类型(免费版、专业版、商业版和企业版),无需额外费用。支持的提供商:AWS、GCP、Azure 和 Oracle Cloud。

在仪表板中设置云区域提示

  1. 前往 Caching(缓存) > Tiered Cache(分层缓存) > Origin configurations(源站配置)

    Go to Tiered Cache ↗
  2. 找到您的源站 IP 或主机名,然后选择 Set region hint(设置区域提示)

  3. 选择您的云提供商和区域(例如 aws:us-east-1gcp:europe-west1)。

通过 API 列出支持的云区域

要查看所有可用的云提供商和区域,请使用支持区域端点:

List supported cloud vendors and regionsbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/origin_cloud_regions/supported_regions" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

通过 API 设置云区域提示

Create or update an origin cloud region mappingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/origin_cloud_regions" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"ip": "203.0.113.1",
		"vendor": "aws",
		"region": "us-east-1"
	}'

这篇文档对您有帮助吗?