关键不是绕缓存,而是确保带认证信息的请求不被缓存,防止数据泄露或登录态失效;需在边缘规则中对/admin/、/api/等路径及含cookie/authorization头的请求设置“跳过缓存”,并保障浏览器始终携带有效cookie。

运维人员登录后台时,要让请求自动携带 Cookie 并绕过 CDN 或边缘缓存(如腾讯云 EdgeOne、Cloudflare),关键不是“绕缓存”,而是**确保带认证信息的请求不被缓存**——因为一旦被缓存,后续带不同 Cookie 的请求可能拿到别人的数据,或登录态失效。实现的核心是:服务端识别登录态(Cookie)→ 告诉边缘节点“别缓存这个请求”→ 浏览器每次发请求都带上有效 Cookie。
明确哪些请求必须绕缓存
不是所有请求都要绕,重点是:所有依赖用户身份、含敏感数据、或返回结果因人而异的动态接口和页面,例如:
- /admin/、/api/v1/user/info 等管理后台路径
- 任何 URL 中包含 Cookie: sessionid=... 或 Authorization: Bearer 的请求
- 带 Referer: 后台域名 或特定 User-Agent 的管理操作请求
在边缘规则中配置“动态绕过”
以腾讯云 EdgeOne 或 Cloudflare 为例,需在规则引擎中添加高优先级规则,匹配条件后执行“不缓存”动作:
- 匹配路径前缀:如 /admin/*、/api/*
- 匹配请求头:如 Cookie 包含 "sessionid" 或 "auth_token"
- 匹配 HTTP 方法:如 POST/PUT/DELETE(这些通常不缓存)
- 动作统一设为:缓存策略 → 跳过缓存(Cache Bypass)或 强制回源(Force Origin)
⚠️ 注意:规则顺序很重要,这类绕过规则必须放在“静态资源缓存规则”之前,否则会被提前命中缓存。
确保浏览器请求始终携带有效 Cookie
运维人员访问后台时,Cookie 必须存在且未过期。常见保障方式:
- 登录页使用 Set-Cookie 响应头 + HttpOnly + Secure + SameSite=Lax/Strict,防止被 JS 窃取,同时保证跨站请求仍能携带
- 前端页面通过 fetch 或 axios 发起请求时,显式设置 credentials: 'include',确保 Cookie 随请求发出
- 若用 Selenium 自动化登录,需调用 driver.add_cookie() 加载已知有效的 Cookie,并在访问目标页前 driver.refresh() 或直接 get() 页面
验证是否生效的实操方法
上线后快速确认是否真正绕过缓存:
- 打开浏览器 DevTools → Network 标签,选中一个后台请求,查看响应头是否有 X-Cache: HIT(被缓存)或 X-Cache: MISS(已回源)
- 用 curl 测试:curl -I -H "Cookie: sessionid=xxx" https://admin.example.com/api/status,观察 CF-Cache-Status(Cloudflare)或 EO-Cache-Status(EdgeOne)是否为 BYPASS
- 两个不同账号在同一浏览器无痕窗口分别登录,检查各自获取的用户信息是否隔离,避免缓存串号











