CacheKey 配置详解
参考资料
CacheKey 配置详解
CDN 自定义 CacheKey 配置详解
1. CacheKey 的作用
CacheKey 是 CDN 缓存资源的唯一标识,决定 CDN 如何区分不同的请求并返回缓存内容。
2. CacheKey 的默认组成
默认情况下,CDN 的 CacheKey 通常包含:
完整 URL 路径(如
/images/logo.png
)查询字符串参数(如
?version=1.0
)
3. 自定义 CacheKey 的常见方式
可以调整 CacheKey 的组成,影响 CDN 的缓存策略:
(1)忽略查询参数(Ignore Query String)
适用场景:静态资源(如
.js
、.css
、.png
)效果:
/image.jpg?v=1
和/image.jpg?v=2
会被视为相同资源,提高缓存命中率。
(2)包含特定查询参数
适用场景:动态资源(如 API 请求)
示例:仅保留
id
参数,忽略其他参数(如/api/data?id=123&token=abc
→ 仅id=123
影响缓存)。
(3)基于请求头(Headers)
适用场景:多语言、设备适配
示例:
包含
Accept-Language
(缓存不同语言版本)包含
User-Agent
(缓存 PC/移动端不同版本)
(4)基于 Cookie
适用场景:个性化内容(如登录用户缓存)
示例:包含
session_id
或user_token
区分用户缓存。
4. 配置示例(不同 CDN 厂商)
阿里云 CDN:在「缓存配置」→「CacheKey」中设置参数过滤规则。
腾讯云 CDN:在「缓存键规则」中自定义参数、请求头等。
AWS CloudFront:通过 Cache Policy 或 Origin Request Policy 调整 CacheKey。
5. 最佳实践
静态资源:尽量忽略所有查询参数,提高缓存命中率。
动态资源:仅保留必要参数,避免缓存碎片化。
测试验证:使用
curl -I
或浏览器开发者工具检查X-Cache
头,确认缓存生效。
6. 注意事项
缓存污染:错误的 CacheKey 可能导致缓存混乱(如不同用户看到相同内容)。
缓存命中率:过度定制可能降低缓存复用率,需监控优化。
预热机制:重要资源可主动预热,避免首次访问回源延迟。
通过合理配置 CacheKey,可以优化 CDN 性能,提升用户体验并降低源站负载。