先把第一步做了:把缓存键(Cache Key)里的随机查询串去掉,让同一种资源只对应一个缓存对象。高防CDN缓存策略优化以降低源站压力,五步走:缓存键归一化 → 开启请求折叠 → 分层回源 → 路径分治 → 回源收口。下面每一步都有可执行动作和验证指标。
先算一笔账:缓存命中率每差10个百分点,源站要多接多少并发
假设你的站点总请求量是10万QPS,缓存命中率90%时,回源QPS是1万;命中率掉到80%,回源QPS变成2万——源站并发负载直接翻倍。这个换算关系(回源并发 = 总请求量 × 未命中率)是整个优化策略的出发点。缓存命中的意义不只是省带宽,更是把并发压力留在边缘。(演算示例,非实测数据)
为什么挂了CDN源站还是被打满:三类未命中请求的来源
源站仍被压垮,通常有三条路:
- 源站真实IP泄露:攻击者全网扫描后绕过CDN直连源站,这是CDN安全体系中最普遍的漏洞(AWS DDoS 弹性架构最佳实践白皮书,2025年10月更新)。
- 缓存穿透:攻击者构造海量带随机参数或畸形路径的请求,每个请求都未命中缓存,全部回源。
- 自身规则缺失:静态与动态路径没有合理区分,导致所有请求全量回源。
针对第一类,建议先参照如何防止源站真实IP暴露完成源站IP收口,这是所有缓存优化的前提。
第1步:缓存键归一化,让随机查询串不再制造独立缓存对象
默认情况下,CDN会把完整URL(含查询串)作为缓存键,导致每个带不同参数的请求都生成一个独立缓存对象,命中率被稀释到接近零。
动作:在CDN控制台的缓存键设置里,按白名单保留业务真实需要的参数(如分页、语言、版本),忽略营销与追踪类参数;同时统一大小写与末尾斜杠。
带随机参数的请求要防止缓存穿透,靠的也主要是这一步。
第2步:开启请求折叠,把同一资源的并发回源收敛成一次
请求折叠(Request Collapsing)机制:当同一边缘节点上多个并发请求同时未命中同一个缓存键时,这些请求会在该节点排队,等待首个回源结果返回后共享,而不是各自穿透回源。
动作:在CDN配置中开启请求折叠,同时设置合理的回源超时,并启用stale-while-revalidate类策略(过期后先返回旧内容,后台异步更新)。
AWS 在《Best Practices for DDoS Resiliency》中关于 CloudFront 的章节指出,请求折叠与层级缓存配合严格回源白名单,可有效防止CC攻击穿透并降低源站并发负载。
第3步:分层回源(Origin Shield),减少多节点各自回源的放大效应
没有分层时,N个边缘节点对同一资源各回源一次,源站看到的是N倍请求。开启分层回源(Origin Shield)后,所有边缘节点先回源到中间层,由中间层统一收敛后再回源站。
动作:选择离源站机房近、且与回源链路方向一致的节点作为Origin Shield层。
它与请求折叠是叠加关系:请求折叠解决同一时刻的并发合并,Origin Shield解决跨节点的重复回源。
第4步:静态、半静态、纯动态三类路径分治,动态接口用什么替代缓存
不同路径的缓存策略应分开配置:
| 路径类型 | 示例 | 缓存策略 |
|---|---|---|
| 静态 | 图片、CSS、JS | 长TTL(如1年),配合内容哈希版本号 |
| 半静态 | 商品详情、列表页 | 短TTL(如60秒),过期后后台异步刷新 |
| 纯动态 | 登录、下单、个人中心 | 不缓存,改用频控、验证挑战、连接层限流兜底 |
动态接口能不能走CDN缓存?能缓存的是可容忍秒级陈旧的读接口,比如配置拉取;写接口与个性化响应绝不能缓存。
第5步:未命中请求的兜底——回源限流与回源白名单收口
缓存策略只能压缩未命中量,不能消灭它,因此必须给源站设回源并发/QPS上限,并在源站安全组只放行CDN回源网段,关闭公网直连入口。源站侧的限流阈值与连接数控制可参考Nginx防CC攻击限流配置最佳实践。
到这一步,高防CDN缓存策略优化以降低源站压力的五个动作才算闭环——缓存压缩未命中量,白名单堵住绕过路径。这一收口动作与无感接入高防CDN配置流程配合,才能真正堵住直连源站的路径。严格回源白名单是形成防护闭环的必要条件。
配完怎么验:命中率、回源QPS、回源带宽三个指标怎么看
高防CDN缓存策略优化以降低源站压力是否生效,只看三个指标:
| 指标 | 怎么看 |
|---|---|
| 字节命中率 vs 请求命中率 | 字节命中率高但请求命中率低,说明大文件命中好但小请求穿透多 |
| 回源QPS曲线 | 流量峰值时曲线被削平,说明边缘吸收了并发 |
| 回源带宽与总带宽比值 | 比值显著下降,说明资源在边缘被复用 |
用带随机参数的构造请求做穿透自测,确认缓存键归一化生效。看趋势与相对变化,不追求绝对数值。

缓存策略解决不了的部分:拟真Bot与秒级攻击窗口
Radware 2026全球威胁报告显示,网络层DDoS攻击同比增长168.2%,多数Web DDoS攻击在5分钟内结束,部分甚至低于60秒;恶意Bot流量同比增长91.8%。这意味着缓存与回源规则必须在攻击发生前预置,人工临时调整赶不上攻击节奏。
拟真Bot与低频分布式请求会攻击动态接口,这需要WAF与行为识别配合,缓存优化不能替代流量清洗。
RockCloud 在边缘缓存与回源收敛环节的落位方式
当你理解了缓存键、请求折叠、分层回源与回源白名单后,RockCloud高防CDN可以在链路上这样落位:边缘缓存与Anycast就近吸收承担“把并发挡在边缘”这一段;源站保护与回源白名单承担“堵住直连源站”这一段;智能WAF与Anycast全球网络承担“缓存管不到的动态接口与秒级攻击窗口”这一段。
它与你自己的缓存规则设计是分层协作关系,不替代你的策略。
常见问题
接了CDN源站还是被打满怎么办?
先按高防CDN缓存策略优化以降低源站压力的排查顺序走:先查源站IP是否泄露,再看缓存命中率。若命中率低,优先做缓存键归一化与请求折叠;若命中率正常但回源QPS仍高,检查是否被绕过CDN直连,收紧源站白名单。
CDN缓存命中率低是什么原因?
常见原因有缓存键未归一化(随机参数导致穿透)、缓存规则未区分路径(动态内容强制缓存但实际不可用)、TTL设置过短导致频繁回源。按本文第1步和第4步优化即可。
带随机参数的请求怎么防止缓存穿透?
开启缓存键归一化,按白名单保留必要参数(如页码、版本),忽略营销追踪参数。同时可配合请求折叠,让未命中的并发合并为一次回源。
回源请求合并怎么配置?
在CDN控制台开启请求折叠(Request Collapsing),并启用分层回源(Origin Shield)。前者合并同一时刻的并发回源,后者合并跨节点的重复回源,两者叠加效果最佳。
CDN回源带宽太高怎么降?
先提高缓存命中率(重点优化缓存键和TTL),再开启分层回源(Origin Shield)与请求折叠,减少重复回源。同时确认源站只接受CDN回源,避免被直连消耗带宽。
缓存TTL设多长合适?
静态资源可设1年并带版本号;半静态内容建议60秒左右并配合后台刷新;动态内容不设缓存。TTL过长会导致内容更新滞后,过短则增加回源压力。
建议你先按“配完怎么验”一节给出的命中率、回源QPS、回源带宽三个指标做一次基线自测,并构造一次带随机参数的请求验证缓存穿透是否存在;若确认回源并发无法收敛或源站入口尚未收口,可联系 RockCloud 技术支持一起梳理缓存规则与回源白名单。
评论(0)