内容分发网络 CDN 资源缓存未生效

这篇分析CDN节点缓存未命中原因,包括缓存优先级设置错误、遵循源站但源站返回禁止缓存头部,并给出解决思路与处理步骤,核心是确保缓存规则底部优先、检查缓存时间及源站响应头。 缓存优先级:CDN规则底部优先,需确保预期规则在列表最下方。 源站头部:遵循源站时,需确保源站Cache-Control不为no-cache/no-store/private。

相关产品
内容分发网络 CDN 产品页,含版本规格、价格与购买入口。

一、现象描述

设置完节点缓存过期时间,预热完成后,请求依然未能命中节点缓存。

二、可能原因

1. 设置有多条缓存配置,但不清楚其优先级。

2. 配置了遵循源站的缓存策略,但源站的 Cache-Control 字段为 no-cache/no-store/private。

三、解决思路

1. 正确设置缓存优先级
CDN 缓存规则可以设置多条,并且底部优先,这里需要确保用户预期和优先级保持一致,才能保证客户预期的规则生效。

2. 正确设置缓存时间
检查控制台的缓存时间是否过小。

注意:文件访问频率低,热度不够,不经常被用户访问到的 URL,即使符合所有缓存规则,但是也有被节点去除缓存的风险。

3. 检查缓存设置规则是否符合预期

·检查 CDN 缓存键规则是否设置参数缓存规则导致的节点未缓存。

·检查 CDN 节点过期缓存设置是否设置了强制不缓存。

·检查 CDN 节点过期缓存设置遵循源站时,回源时源站的头部是否返回了 no-cache/no-store/private。

四、处理步骤

1. 检查缓存设置优先(底部优先)
登录 CDN 控制台,在左侧菜单栏选择域名管理,单击域名操作列的管理,进入域名配置页面,切换 Tab 至缓存配置,即可找到缓存键规则配置。如下所示,jpg 不忽略参数缓存优先级高于全部文件忽略参数缓存, 需要确保业务缓存策略符合优先级设置。


2. 检查缓存时间
登录 CDN 控制台,在左侧菜单栏选择域名管理,单击域名操作列的管理,进入域名配置页面,切换 Tab 至缓存配置,即可找到节点缓存过期配置。如下所示如果缓存设置时间过小,可能会误以为缓存设置没有生效,确保符合业务缓存策略。


3. 检查缓存策略
在缓存键规则配置和节点缓存过期配置里对策略进行检查,确保符合预期。
如果设置了遵循源站,确保源站的 Cache-Control 字段不为 no-cache/no-store/private。

4. 将需要缓存的资源重新预热一遍,等待预热完成后,再次请求即可。

赞 (0)
上一篇 4天前
下一篇 4天前