腾讯云 CDN 加速怎么配:缓存规则、回源策略与命中率优化正文
一个做电商的客户找我复盘:站群上了腾讯云 CDN 加速,商品详情页加载速度却时快时慢,后台一查缓存命中率只有两成出头。他不是没上 CDN,是缓存几乎没生效——每个带跟踪参数的链接都被当成新文件,节点每次都得回源。CDN 提速的前提是命中率高,没命中的加速,等于给源站加了一层收费站。
要理解这件事,得把 CDN 拆成两块:缓存在哪、回源怎么走。缓存规则决定节点能不能复用内容,回源策略决定节点回源时打得准不准。两块都配对了,静态资源命中率自然就上去了。
先搞清楚 CDN 在替你省什么:命中率才是第一指标
CDN 的价值是让用户就近从节点取内容,代替去源站取。只要节点有缓存,这一次请求就不回源,源站的带宽、连接数和响应压力都省下来。
所以看 CDN 效果,第一个指标不是"开了没有",而是缓存命中率。命中率低通常意味着三种情况:缓存键太细,同一份内容被当成很多份;缓存时间太短,还没复用就过期了;动态内容混进静态缓存里,压根没法复用。
顺带把计费口径说清楚,免得优化方向跑偏。CDN 的计费方式主要有按流量和按带宽峰值两种,回源流量通常单独计量;站点全站 HTTPS 时,还会涉及 HTTPS 请求数计费。回源流量越高,说明节点替你省得越少,而回源流量和源站带宽又是两笔实打实的成本。所以提升命中率不只是提速,也是在压成本,这一点很多只盯前台加载速度的人会忽略。
从链路看,一次用户请求要么命中节点缓存直接返回,要么回源取回后再缓存。命中是最省事的路径,也是 CDN 设计的核心目标;回源是兜底路径,次数越多,源站越累。理解了这条链路,后面的缓存规则和回源策略就有了统一的判断标准。
很多人的误区是把 CDN 当"万能加速器",觉得开了就快。CDN 只加速可缓存的东西;不可缓存的内容,CDN 顶多帮你优化回源链路,不能凭空变出缓快来。
缓存规则怎么配:缓存键、匹配方式与优先级
缓存键是整件事的地基。一个请求进到节点,节点先算出一个键,键相同就复用缓存。常见缓存键由域名、路径、查询参数组成;如果源站再加 Vary 响应头(比如 Vary 按 User-Agent 区分),键会进一步分裂。
参数处理是最容易出错的地方。默认"保留全部参数"时,?utm_source=xxx、?from=weibo 这类跟踪参数会让同一个页面产生无数个键,缓存基本失效。正确做法是按需配置:可以设置忽略全部参数、只保留指定参数、或忽略指定参数。对纯静态资源,忽略全部参数通常没问题;对确实改变内容的参数,就得保留。
匹配方式一般有按全路径、按后缀、按目录、按正则几类,规则之间有优先级,命中优先级高的先生效。一个稳妥的配法:先给静态资源的文件后缀(js、css、jpg、png、woff 等)配长缓存,再给需要走动态的路径(比如带鉴权的接口)配不缓存,最后留一条默认规则兜底。
缓存时间可以选"遵循源站",也就是听源站返回的 Cache-Control、Expires、max-age;也可以直接自定义。源站响应头不统一时,用 CDN 侧自定义时间更好管,省得被某个后端返回的 no-cache 打乱全局。
回源策略:回源 Host、回源协议与回源重试
回源是节点向源站取内容的过程,这里配错,页面不是慢就是直接报错。
回源 Host 决定节点以什么域名去请求源站。多数场景下,回源 Host 要指向源站真实配置的站点域名,而不是加速域名。源站如果是 Nginx 按 server_name 区分站点,回源 Host 写错会直接 404 或者落到默认站点,这种故障很隐蔽,因为 CDN 节点本身看起来是"正常"的。
回源协议可选 HTTP、HTTPS 或协议跟随。源站已全站 HTTPS 时,回源用 HTTPS 更一致,但要确认源站证书与回源域名匹配,否则会出现证书校验失败。回源端口、回源超时、回源重试次数这些也要按源站真实承载能力调,重试次数设太高,源站一抖就容易被重试流量压垮。
还有两个容易忽略的开关:一是跟随重定向,源站若对某类请求返回 301 或 302,节点是否跟随;二是分片回源,也就是 Range 回源,大文件、视频这类内容开启后可只回源缺失分片,显著降低回源流量。
命中率从低位提上去的六个动作
命中率不是玄学,按下面六步调,通常能明显改善。
收敛缓存键:静态资源忽略无关参数,别让跟踪参数把缓存打散。
静态资源长缓存加文件名版本:给 js、css、图片设长缓存时间,更新时改文件名或加版本号,用新 URL 天然绕开旧缓存。
动态内容明确不缓存:带用户身份的接口、登录态相关响应,按路径或参数配置不缓存。
关闭不必要的 Vary 分裂:确认源站没有按 User-Agent 之类返回不同内容,避免一份资源被缓存成很多份。
合并回源:高并发的同一资源回源时,让节点合并请求,避免大量并发同时打到源站。
提前预热:大促或发布前,把热点资源主动预热到节点,减少上线瞬间的回源洪峰。
命中率是由"缓存键粗细"和"缓存时间长短"共同决定的;键太细、时间太短,配置再花哨也救不回来。
刷新与预热:用对了省钱,用错了伤源站
缓存刷新是把节点上的内容标记失效,让用户取到新版本。可以按 URL 刷新,也可以按目录刷新,但通常有配额限制,不能当日常发版手段用。真正规范的做法是给静态资源带版本号,用新 URL 代替刷新。
预热是反过来,把源站内容提前推到节点。发布大版本、上架活动页之前,先预热热点资源,第一个用户就不会被回源拖慢。
要注意的是,刷新之后的一段时间命中率必然下降,源站压力会上升;刚刷新完又立刻做一次全站预热,可能把源站和回源链路同时压满。所以刷新和预热要错峰,别在流量高峰做。
另外,源站返回 4xx、5xx 时节点是否缓存也要留意。默认一般不缓存错误响应,但如果误配成短时间缓存,用户就会在错误页面前"卡住"好一阵,排查时还以为是自己网络的问题。这类配置通常藏在高级设置里,改完要拿真实 URL 验证一遍。
一张表:常见资源类型的缓存策略
按资源类型分开配缓存,比一刀切长缓存或一刀切不缓存靠谱得多。
资源类型 建议缓存时间 缓存键是否带参数 说明
HTML 页面 短缓存或不缓存 按页面需要 动态渲染的页面默认不缓存,避免用户看到他人数据
JS 与 CSS 长时间 不带 配合文件名带版本或哈希,更新时换新路径
图片 长时间 不带 商品图、图标等稳定资源可放心长缓存
字体文件 很长 不带 跨域引用需确认响应头允许跨域
API 接口 不缓存或极短 按业务区分 带鉴权的接口严禁缓存,防止串号
视频与大文件 长且支持分片 不带 开启分片回源,配合预热降低回源压力
下载安装包 长 不带 新版本用新路径,少依赖手动刷新
踩坑复盘:CDN 事故是怎么发生的
回源 Host 配错导致整站 404。前面提过,这里再强调一次:迁移或换域名后忘记同步回源 Host,是 CDN 报错里最高频的原因之一,排查时先看这一项。
动态接口被缓存导致串号。曾经有个客户,把带登录态的接口配成了缓存,结果 A 用户访问后,B 用户短时间内看到了同样的响应。带身份、带鉴权的响应必须明确排除缓存,这是安全底线,不是性能问题。
回源重试把源站打垮。源站短暂无响应时,如果回源重试次数设得高、节点又多,重试流量会形成放大效应。源站本身是台带宽有限的腾讯云服务器时,这种放大尤其致命;换成弹性更好的国际腾讯云服务器或加一层负载均衡,抗冲击能力会好很多。
大文件没开分片回源,回源流量翻倍。视频这类内容不开 Range 回源,节点往往整段拉取,回源流量和源站带宽都被白白消耗。
防盗链和鉴权互相打架。配置了 Referer 防盗链或 URL 鉴权后,节点回源时带的头可能不符合源站预期,导致正常请求被拒。规则调整后一定要用真实链路验证一遍,别只看控制台绿点。
FAQ
Q:CDN 缓存命中率多少算正常?
A:没有统一标准,取决于内容构成。以静态资源为主的站点命中率通常很高;以动态接口为主、又做了正确不缓存配置的站点,命中率偏低也是合理的。关键是区分"该命中的有没有命中",而不是死盯一个数字。
Q:为什么刷新了 CDN 缓存,页面还是旧的?
A:先确认刷新的是正确的资源 URL,文件级刷新和目录刷新的覆盖范围不同;再确认用户端浏览器本地缓存是否还在生效,浏览器缓存要另做处理。两者都排除了,再检查源站是否返回了带 max-age 的强缓存头。
Q:回源 Host 到底该填加速域名还是源站域名?
A:通常填源站真实对外提供服务的域名,也就是源站 Nginx 里配置的那个 server_name,而不是加速域名。填错会命中默认站点或直接 404,表面看是 CDN 故障,实际是回源指向错了。
Q:开了 CDN 之后源站流量为什么没降?
A:多半是命中率没上来,或者大文件走了完整回源。抓一批具体 URL 看命中情况,重点检查缓存键是否被参数打散、静态资源缓存时间是否太短、大文件是否开了分片回源。
结语
配 CDN 的顺序别搞反:先把缓存键收敛、把缓存时间按资源类型分开,再调回源 Host 和回源协议,最后用预热和刷新做发布配套。命中率是结果,不是可以单独调出来的东西。
给你的行动清单:第一,导出最近一周的 CDN 日志,按 URL 分类统计命中与回源情况,找出持续回源的那类资源;第二,针对它们检查缓存键和缓存时间;第三,给静态资源加版本号,把"刷新"从日常流程里拿掉;第四,发布前做一次预热,避开流量高峰。四步做完再看命中率曲线,问题基本就定位清楚了。
如果需要更深入咨询了解可以联系全球代理上TG:jinniuge 他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。不懂找他们就对了。
本文由不代表本站立场,转载联系作者并注明出处。
