外观
3.2 缓存规则配置
约 745 字
CDN缓存
本页对应「三、操作步骤」的 3.2,完成缓存时长、缓存键与刷新方式的配置,使静态资源可长期缓存、页面内容能随发布及时更新。返回上级:CDN 接入。
前置条件
- 加速域名已启用并通过 3.1 的验证,CDN 已能为站点返回内容。
- 已梳理站点文件类型:HTML 页面、带哈希的 JS/CSS、图片与字体、接口响应。
- 已确认发布流程能在构建时为静态资源文件名加入内容哈希。
- 已确认 3.1 的加速域名状态为已启用,否则规则无法下发到节点。
- 已列出不允许缓存的路径,例如登录、接口与后台入口。
操作步骤
在加速域名的缓存规则配置页,按后缀分别设置缓存时长:HTML 设为较短时长,JS、CSS、图片、字体设较长时长。规则按“精确路径 → 后缀 → 默认”从高到低排序。
设置缓存键,去掉不影响内容的查询参数,避免同一资源被拆成多份缓存:
# 验证参数是否进入缓存键:带随机参数请求,观察是否仍然命中
curl -sS -D - -o /dev/null "https://cdn.example.com/assets/app.9f2c1a.js?from=home" \
| awk 'BEGIN{IGNORECASE=1} /^(age|x-cache|via):/'对需要登录或实时的路径设置不缓存,例如
/api/前缀,并在规则中置于最高优先级。发布后按 URL 刷新变更文件;整站级刷新只在规则变更时使用:
curl -sS -o /dev/null -w "%{http_code}\n" \
"https://cdn.example.com/assets/app.9f2c1a.js?cachebust=$(date +%s)"结果确认
- 同一静态资源连续请求两次,第二次
age大于 0 或命中标识出现,说明缓存生效。 - 带无关查询参数的请求仍命中同一份缓存,说明缓存键配置符合预期。
/api/路径的响应头没有长时间age,说明不缓存规则生效。- 刷新指定 URL 后,
curl取到的内容与源站/srv/axis下文件一致。
注意事项
- 缓存时长不是越长越好:HTML 过长会导致发布后仍显示旧页面,靠刷新无法覆盖所有节点。
- 带哈希的文件名可以设长缓存;同名文件覆盖发布时必须刷新,否则用户会拿到旧内容。
- 修改规则后先用小流量路径验证,确认命中与更新都正常再应用到全站。
- 缓存键一旦收紧或放宽,历史缓存不会自动失效,需要按 URL 或目录主动刷新一次。
- 发布流程能改文件名就不要依赖刷新;带内容哈希的文件名配合长缓存,是最省事的组合。
- 规则顺序要写进变更记录,后续加规则时容易插到错误位置,导致前面的长缓存规则把新规则挡住。