CDN加速配置与缓存怎么设置?聊聊我踩过的坑和实用经验


最近有朋友问我,网站访问速度慢,想上CDN,但配置项一堆看着头大。正好趁这个机会,聊聊CDN加速和缓存到底该怎么设置,尽量说人话,少堆术语。

先说个前提:CDN不是开了就万事大吉,配置不对反而可能出问题。核心就两件事——加速范围怎么定,缓存策略怎么设。

第一步:加速域名和源站配置

添加加速域名时,源站地址要填对。如果你源站有多个IP,建议配主备,避免单点故障。回源协议跟着源站走,源站是HTTPS就选HTTPS回源,别图省事全用HTTP,不然中间环节容易出劫持风险。另外,回源Host要填源站实际识别的域名,尤其是虚拟主机场景,填错了直接回源失败。

第二步:缓存规则,这是重头戏

缓存的核心逻辑是:静态资源长缓存,动态接口不缓存或短缓存。

  • 图片、CSS、JS、字体这类,设7天甚至30天都行,配上文件指纹(比如app.a1b2c3.js),更新时改文件名,缓存自然失效,干净利落。
  • HTML文件建议短缓存,比如5分钟到1小时,或者干脆不缓存,保证用户能及时看到新内容。
  • 接口类请求(/api/开头的)默认不缓存,除非你明确知道某个接口可以缓存。
  • 注意分号:缓存优先级一般按“文件类型 > 路径 > 全站默认”从高到低匹配,规则别写重了。

第三步:几个容易忽略的细节

  1. 缓存刷新:发布新版本后,记得在CDN控制台刷一次URL或目录,别指望它自己过期,尤其大版本更新时。
  2. 忽略参数:有些CDN默认“保留全部参数”作为缓存key,用户带个随机参数就能绕过缓存,白白回源。建议开启“忽略参数”或只保留必要参数。
  3. 回源请求头:如果源站需要特定Header(比如鉴权),记得在CDN侧配置回源请求头,否则回源被拒,用户看到的就是502。
  4. HTTPS证书:证书上传到CDN,注意有效期,过期了全站打不开,设个提醒。
  5. 缓存命中率:配完后观察命中率,低于80%就查查是不是缓存key设太细,或者动态请求占比太高。

最后给个参考配置(以常见静态站为例):

  • 图片/CSS/JS:缓存30天,忽略参数
  • HTML:缓存10分钟
  • 接口路径:不缓存
  • 开启Gzip/Brotli压缩
  • 回源超时设短一点(比如10秒),快速失败比挂着强

配完别急着走,拿不同地区、不同运营商的网络实测一下,看看响应头和命中情况是否符合预期。CDN这东西,配好了是加速器,配歪了就是故障源。慢慢调,别一次改太多,改完观察半天再动下一项。

希望这些经验对你有用,有具体场景可以再聊。


CDN缓存配置网站加速运维经验云服务

阅读量:2