六维教程

EdgeOne Makers 缓存与边缘加速

上一篇 讲了怎么挡掉坏流量。这篇讲”快”的一面:边缘缓存。把内容缓存到离用户最近的边缘节点,用户访问时不用每次都回源,延迟低、源站压力小。

缓存是怎么加速的

没有缓存时,每个请求都要走到你的应用(Cloud Functions 或后端),再返回。有了边缘缓存:

  1. 用户请求到边缘节点
  2. 节点发现已有缓存副本,直接返回
  3. 只有缓存过期或没有时,才回源取一次

这样大部分用户拿到的是边缘节点的响应,速度取决于”用户到最近节点”的距离,而不是”用户到源站”的距离。

默认缓存行为

Makers 对静态资源(图片、CSS、JS、字体等)有默认缓存策略,对 HTML 通常默认不缓存或缓存时间很短(保证内容更新及时)。

资源类型 默认行为
静态文件(js/css/图片/字体) 较长缓存时间
HTML 页面 较短或遵循源站 Cache-Control
API 响应 默认不缓存

自定义缓存规则

你可以在控制台为不同路径设置缓存时长。常见做法:

路径 缓存策略
/static/* 缓存 7 天,文件名带哈希可更长
/api/* 不缓存(动态数据)
/ 首页 缓存 1 分钟(兼顾新鲜度与速度)
/blog/* 缓存 10 分钟

配置示例:对带内容哈希的静态资源缓存一个月。

条件: 请求路径 匹配 /static/* 且 文件名包含 hash
缓存: 2592000 秒(30 天)

缓存键

“缓存键”决定”什么算同一个缓存”。默认通常按 URL。但有时同一个 URL 对不同用户应返回不同内容(比如带 ?lang=zh?lang=en),这时需要把查询参数纳入缓存键,否则会串内容。

配置 说明
忽略所有查询参数 同一路径只存一份,省缓存但可能串数据
只保留指定参数 如只按 lang 区分,其余忽略
包含全部参数 最精确,但缓存命中率低

绕过缓存与主动刷新

需要实时数据的接口(登录态、库存、价格)一定要设为不缓存。

当内容更新了但缓存还没过期,可以手动”刷新缓存”或”预热”,让边缘节点立刻拉取新版本,不用等自然过期。

操作 说明
刷新 URL 清除指定 URL 的缓存,下次访问重新回源
刷新前缀 清除某路径下所有缓存
预热 主动把内容推到边缘节点,避免首次访问慢

stale-while-revalidate

这是一项很实用的体验优化:缓存过期后,先返回旧的缓存给用户(快),同时在后台默默回源更新(新)。用户几乎感知不到过期,又总能拿到接近最新的内容。在支持的配置项里开启即可。

速查卡片

要点 说明
加速原理 边缘节点命中缓存直接返回,少回源
默认策略 静态资源长缓存,HTML 短缓存,API 不缓存
自定义 按路径设时长,静态资源可很长
缓存键 决定”什么算同一份缓存”,防串数据
刷新 内容更新可手动刷新或预热
高级 stale-while-revalidate 先旧后新
上一篇
EdgeOne Makers Bot 管理与防盗刷
下一篇
EdgeOne Makers 图片优化与重定向