不少人以为接上CDN网站就自动变快,其实默认配置往往发挥不出一半本事。真正决定效果的是缓存规则。规则调好了,回源少、命中高、网站快;调不好,要么白交回源带宽,要么更新了用户还看旧的。下面把几个核心参数拆开讲。
先搞懂CDN到底在干嘛
CDN把你网站的内容缓到全国各地的节点。用户访问时就近拿,不用每次都跑到你的源站。命中缓存叫hit,没命中得回源站拿叫miss。你要做的就是让尽量多的请求命中,又不让用户看到过期内容。
四个核心参数
| 参数 | 管什么 | 设不好会怎样 |
|---|---|---|
| 缓存时间TTL | 内容在节点存多久 | 太短频繁回源,太长更新不生效 |
| 缓存键 | 拿什么区分不同缓存 | 带上无用参数会把缓存打碎 |
| 不缓存规则 | 哪些不能缓 | 把后台、登录页缓了会串号 |
| 回源设置 | miss时怎么回源站拿 | 回源Host错了直接报错 |
缓存时间怎么定
核心思路是:越不变的东西缓越久。CSS、JS、图片、字体这些静态资源,TTL可以设到一个月甚至更长。HTML页面这种内容会变的,设短一点,几分钟到几小时。接口数据一般不缓或只缓几秒。
静态资源想长缓又怕更新不生效,办法是文件名带版本号或哈希,比如 style.a1b2c3.css。内容一变文件名就变,CDN当新文件拉,旧的自然过期。这个做法比手动刷缓存可靠多了。
缓存键别乱带参数
缓存键决定CDN怎么区分两个请求是不是同一个。默认会把整个URL包括查询参数都算进去。问题是广告跟踪参数像utm_source这种,每个人点进来都不一样,结果同一张图被缓了无数份,命中率直接崩。正确做法是把这些无关参数从缓存键里剔掉。
不缓存规则必须设
后台管理路径、登录页、购物车、个人中心这些带用户状态的页面,千万不能缓。一旦缓了,A用户看到B用户的信息,既是bug又是隐私事故。一般把 wp-admin、wp-login、带Cookie的动态请求都加进不缓存名单。
回源设置别忽略
miss的请求会回源站拿。回源Host要填对,不然源站根据Host分站会返错页。如果源站是HTTPS,回源也要走HTTPS。回源给个合理超时,源站慢的时候别让CDN一直干等。
静态和动态分开处理
一个实用思路是把站点拆成静态和动态两块。图片、视频、下载包这些放一个专门的静态域名,走CDN长缓存。动态接口、后台走另一个域名,不缓或短缓。这样规则清楚,不容易互相干扰。
怎么验证缓存生效了
打开浏览器开发者工具,看响应头里的 X-Cache 或 CF-Cache-Status 字段。显示HIT就是命中了缓存,MISS是回了源。同一个静态资源刷几次都是MISS,那就是缓存规则没生效,得回去查。
小结
CDN不是接上就完事,缓存规则才是真正决定效果的地方。记住四句话:静态长缓加版本号,动态短缓或不缓,缓存键剔掉广告参数,后台登录页一律不缓。这几样做到,命中率和体验都上来了。






