腾讯云CDN缓存配置最佳实践,网站提速+高命中率完整方案
CDN缓存是网站加速的核心。合理的缓存策略,不仅可以大幅降低源站压力、减少回源流量费用,还能显著提升用户访问速度;缓存配置错误则会出现页面旧内容不更新、登录态异常、图片错乱等问题。本文基于腾讯云CDN控制台,给出一套可直接落地的缓存配置方案,适合静态网站、企业官网、前后端分离站点使用。
一、核心缓存设计原则
缓存策略一句话总结:静态资源长缓存,动态接口不缓存,带哈希版本的资源永久缓存,HTML页面短缓存。
不经常改动的图片、JS、CSS、字体文件,设置长时间缓存,前端打包开启文件哈希命名,修改资源自动变更文件名,避免手动刷新;
HTML页面属于页面入口,不能设置长缓存,防止用户长期看到旧页面;
API接口、后台管理、用户个性化内容,全部禁止缓存,保证实时数据;
腾讯云CDN缓存规则底部优先级高于顶部,不缓存规则务必放在规则列表最下方,防止被覆盖。
优先级说明:CDN控制台配置的节点缓存过期规则,优先级高于源站返回的Cache-Control响应头;响应头主要用于控制浏览器侧缓存。
二、节点缓存过期配置(控制台直接复制)
进入腾讯云CDN控制台 → 域名管理 → 选中加速域名 → 缓存配置 → 节点缓存过期配置,按下面顺序添加规则:
| 匹配类型 | 匹配内容 | 缓存过期时间 | 业务说明 |
|---|---|---|---|
| 文件后缀 | jpg;png;webp;gif;svg;ico;woff;woff2;ttf;eot | 31536000秒(1年) | 图片、字体文件,打包带hash文件名 |
| 文件后缀 | js;css | 31536000秒(1年) | 前端打包静态资源,修改自动换文件名 |
| 文件后缀 | mp4;mp3;webm | 86400秒(1天) | 音视频资源;带版本哈希可改为1年 |
| 文件后缀 | html;htm | 30秒 | HTML页面短缓存,保障页面及时更新 |
| 文件后缀 | php;jsp;asp;aspx | 0秒(不缓存) | 后端动态脚本文件 |
| 目录 | /api/;/admin/;/backend/ | 0秒(不缓存) | API接口、后台管理目录,禁止缓存 |
| 全路径 | / | 30秒 | 网站首页单独短缓存 |
三、缓存键规则配置(提升命中率关键)
路径:缓存配置 → 缓存键规则配置。缓存键决定CDN如何识别同一份资源,不合理的参数处理会造成一份文件分裂成多条缓存,直接拉低缓存命中率。
查询字符串(URL参数)
图片、JS、CSS、字体等静态资源:忽略指定参数,忽略参数填写:
utm_source;utm_medium;utm_campaign;utm_term;utm_content;from;spm。这类统计参数不改变文件内容,过滤后大幅提升命中率。图片使用URL参数裁剪(
?w=800&q=75)场景:保留指定参数,填写w;q,如果忽略会导致图片尺寸错乱。HTML、API接口:保留全部参数。
忽略URL大小写:开启,
a.JPG与a.jpg视为同一个资源。Cookie处理:静态资源忽略Cookie;API、后台路径保留Cookie,避免用户登录会话错乱。
四、状态码缓存TTL配置
路径:缓存配置 → 状态码缓存TTL,用来控制异常页面缓存时间,防止源站被恶意请求打垮。
200、206:按上面资源规则执行;
301、302重定向:300秒(5分钟);
404页面:60秒(1分钟);
500、502、503、504错误:10秒。错误页面绝对不能设置长缓存。
五、HTTP响应头配置(浏览器缓存控制)
可以在CDN「响应头设置」添加HTTP头,控制浏览器本地缓存行为,推荐三套模板:
静态资源(带hash图片/js/css/字体)
Cache-Control: public, max-age=31536000, immutable
immutable表示资源有效期内,浏览器不再发起校验请求,减少回源。
2. HTML页面
Cache-Control: public, max-age=60, s-maxage=30
max-age控制浏览器缓存,s-maxage专门给CDN节点使用。 3. API、动态用户接口
Cache-Control: no-store
完全禁止浏览器和CDN缓存,保证数据实时。
六、配套高级功能配置
1. 压缩配置
开启Gzip与Brotli压缩,JS、CSS、HTML自动压缩;不要源站与CDN双重开启压缩,避免压缩异常。
2. 缓存刷新与预热
最优方案:前端打包开启文件名哈希。资源修改直接更换文件名,天然解决缓存更新,尽量少手动提交刷新;
刷新:单文件更新使用URL刷新;目录刷新慎用,会引发大规模回源,消耗源站带宽;
预热:新版本上线前,对首页热门静态资源执行预热,资源提前分发到边缘节点,避免首次访问回源卡顿。
3. 规则引擎(可选进阶)
复杂站点可以使用腾讯云CDN规则引擎,编写匹配规则:匹配/api/*设置绕过缓存、直接回源;匹配静态资源后缀统一过滤utm类统计参数。
七、常见踩坑避坑清单
规则顺序:腾讯云CDN同精度规则,底部优先级更高,不缓存规则必须放在列表最下方;
HTML页面严禁长缓存,否则用户会持续看到旧页面;
图片裁剪参数
w/q会改变图片内容,不能忽略,否则图片展示错乱;/admin后台目录必须设置0秒不缓存,否则会出现登录账号串号;监控指标:目标静态资源缓存命中率≥90%,在CDN监控面板查看缓存命中率指标,持续优化。
八、验证缓存是否生效
使用curl命令在本地测试,查看响应头信息:
curl -I https://你的域名/xxx.jpg
重点观察返回头Cache-Control和腾讯CDN标识X-Cache-Lookup,判断资源是否命中CDN节点缓存。
九、总结
腾讯云CDN缓存优化核心不是单纯设置超长缓存时间,而是动静分离。静态资源依靠文件哈希+长缓存,最大化命中率;动态接口、页面入口短缓存或者不缓存,保证内容实时。这套配置兼顾网站访问速度、源站稳定性与运维成本,大部分网站直接套用即可。上线后持续观察缓存命中率,根据业务更新频率微调规则。








发表评论