全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

CDN 自定义缓存key功能

最近更新时间:2026-05-25 14:15:57

CDN 自定义缓存Key功能

背景说明

CDN支持自定义缓存Key策略,您可以根据业务需要灵活配置缓存Key的生成规则。

功能概述

缓存 Key 是 CDN 节点对资源做唯一索引的标识,默认以请求 URL 为依据生成。金山云 CDN 支持自定义缓存 Key,可通过统一缓存Key的域名、改写路径、协议控制、参数过滤、Header/Cookie/UA 参与计算等方式,实现灵活缓存策略,满足多域名复用、防盗链兼容、多端差异化缓存等复杂业务场景。

功能介绍

自定义缓存Key功能允许对以下维度进行灵活配置:

  • 缓存Key域名:支持将缓存Key中的域名统一设置为指定域名,实现多域名共享同一份缓存副本。

  • 缓存Key路径:支持对原始请求的URI路径进行改写,生成自定义的缓存路径,不影响源站的实际目录结构。

  • 缓存Key协议:支持自定义缓存Key的协议类型,可固定为HTTP或HTTPS,也可区分协议分别缓存。

  • 缓存Key参数:支持对URL中的查询参数进行精细化控制,包括全部保留、全部忽略、保留指定参数、删除指定参数、正则改写参数以及参数自动转小写等操作。

  • 其他缓存因素:支持将请求中的Cookie、Header、User-Agent(支持正则匹配)等信息纳入缓存Key的计算范围,实现基于多因素的精细化缓存控制。

配置场景与说明

场景1:多域名共享缓存

适用场景

A、B两个或多个域名对应的源站资源完全一致,希望共用同一份缓存副本,以减少回源次数并提升缓存命中率。常见于多域名指向同一资源池的场景,例如同一内容的PC端和移动端域名、主备域名切换、多CDN厂商冗余配置等。

配置方式

将参与共享的域名统一设置缓存Key域名为其中一个域名或自定义的通用域名,使多个域名的缓存Key与缓存URI保持一致。

效果说明

配置生效后,不同域名请求同一资源时将共用CDN节点的同一份缓存,显著减少回源次数、提升缓存命中率。

场景2:更改缓存Key路径

适用场景

原始请求路径与预期缓存路径不一致,需要在不修改源站目录结构的前提下,按业务需求映射缓存路径。

配置示例

原始请求URL为http://test.com/a/b/c.txt,通过自定义缓存Key可将其缓存路径改写为http://test.com/c.txt。

效果说明

配置生效后,CDN节点将以改写后的路径作为缓存Key存储资源,不影响源站的实际目录结构。

注意事项

  • 仅改变CDN节点的缓存索引方式,不会修改源站的文件或路径

  • 多条缓存路径规则之间存在优先级,配置时需注意规则顺序

场景3:自定义协议缓存

默认规则

金山云CDN默认缓存Key协议为HTTP,即不同协议的请求默认不区分缓存。

可选配置

  • 固定为HTTPS协议缓存:所有请求统一使用HTTPS协议生成缓存Key

  • 按协议跟随缓存(区分协议) :HTTP和HTTPS请求分别使用不同缓存Key,各自独立缓存

效果说明

根据业务需求按协议维度精细化控制缓存策略。例如,对于同时支持HTTP和HTTPS访问的资源,若资源内容协议无关,建议统一缓存Key以提升命中率;若内容因协议不同而有差异,则应区分协议分别缓存。

场景4:缓存参数精细化设置

基础能力

  • 保留参数(全量缓存) :URL中所有查询参数均参与缓存Key计算。适用于不同参数值对应不同资源的场景

  • 忽略参数(全量忽略) :URL中所有查询参数均不参与缓存Key计算。金山云CDN默认开启过滤参数功能,即默认忽略全部参数

高级配置

  • 指定部分参数缓存:仅指定的参数参与缓存Key计算,其他参数全部忽略。适用于业务中仅少数参数影响资源内容的场景

  • 删除部分参数缓存:删除指定的参数后,其余参数参与缓存Key计算。适用于业务中存在少数需要忽略的无关参数的场景

  • 正则改写参数缓存:通过正则表达式对参数进行格式化改写后再参与缓存Key计算

  • 参数自动转小写:将参数名称统一转换为小写后再参与缓存Key计算,避免因大小写差异导致的缓存碎片化

效果说明

精准控制URL参数对缓存Key的影响,在保障业务正确性的前提下最大化缓存命中率。

配置建议

  • 常规情况下不推荐直接配置为保留参数,否则所有请求参数的变动均会导致缓存失效,命中率大幅下降

  • 若需同时使用自定义参数操作与忽略参数功能,请注意两项功能可能存在冲突。

场景5:基于其他因素的缓存Key设置

支持因素

金山云CDN支持将以下请求因素纳入缓存Key的计算范围:

因素类型

配置说明

Cookie

支持指定Cookie名称参与缓存Key计算,不同Cookie值区分缓存

Header

支持指定请求Header参与缓存Key计算

User-Agent

支持UA的精确匹配,也支持正则匹配配置

开关说明:因素不存在时的处理

  • 开关开启:当配置的缓存因素(如指定名称的Cookie、Header、UA等)在请求中不存在时,系统忽略该因素,不参与缓存Key计算

  • 开关关闭(默认) :当配置的缓存因素在请求中不存在时,系统使用对应的占位符参与缓存Key计算,以确保缓存Key的一致性和可预测性

  • 占位符规则(开关关闭时):

    • 配置参数缓存但参数不存在 → 使用arg=占位

    • 配置Header缓存但Header不存在 → 使用header_name=占位

    • 配置Cookie缓存但Cookie不存在 → 使用cookie_name=占位

    • 配置UA缓存但UA不存在 → 使用user_agent=占位

效果说明

支持多维度组合缓存,系统会将多个因素自动拼接为唯一的缓存Key,实现精细化的缓存控制。

注意事项

  1. 自定义缓存Key可配置的缓存因素包含:请求参数(Query String)、请求Header、Cookie、User-Agent。

  2. 因素不存在则忽略开关默认处于关闭状态。关闭时,若某因素在请求中不存在,系统将使用对应占位符参与缓存Key计算。如需忽略缺失因素,请联系技术支持开启该开关。

  3. 多条缓存Key规则之间存在优先级关系,配置时请合理设置规则顺序以确保生效规则符合预期。

  4. 缓存Key配置修改后,建议对相关域名执行一次缓存刷新操作,以确保已有缓存资源能够同步至最新的缓存策略。

  5. 配置修改提交后,一般5分钟内生效。生效后可在CDN控制台的命中率统计页面观察效果。

配置方式

若需配置上述特殊缓存 Key 场景,请联系金山云技术支持协助完成配置。

常见问题

Q1:配置一些特殊缓存 Key 后,缓存命中率会提升吗?

A:会。统一缓存 Key、过滤无关参数、多域名共享缓存都能有效减少回源,提高命中率。

Q2:修改缓存 Key 会影响源站资源吗?

A:不会。缓存 Key 仅改变 CDN 节点存储索引,不修改源站文件与路径。

Q3:可以同时按参数、Header、UA 缓存吗?

A:可以。支持多维度组合缓存,系统会自动拼接为唯一缓存 Key。

Q4:时间戳防盗链如何配置不影响命中率?

A:建议使用「删除部分参数」功能,过滤 t、k 等变化参数,保留业务有效参数。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈