WAF和CDN能一起用吗?先后顺序怎么排

速读摘要:WAF 和 CDN 完全可以一起用,而且通常是标配组合。关键在于顺序——推荐"WAF 在前、CDN 在后",让恶意流量在进入缓存层之前就被拦掉。如果两者分属不同厂商,需要处理 CNAME 嵌套和真实 IP 透传。本文讲清链路排序与配置要点。
WAF 和 CDN 能一起用吗?
WAF 部署与接入篇 · 第 40 问 · 主机吧 WAF 知识库

一、两者职责不同,不冲突

能力WAFCDN
核心目标拦截攻击加速访问
处理对象恶意请求静态资源
缓存不缓存强缓存
典型收益安全速度 + 省带宽

一个是”安检门”,一个是”物流仓”。目标不同,正好互补。

二、顺序怎么排

2.1 推荐:WAF 在前

用户 → WAF(安全检测)→ CDN(缓存加速)→ 源站

优点:
  ✅ 恶意请求在进入 CDN 前就被拦掉,不会污染缓存
  ✅ CDN 只处理"干净"流量,缓存命中率更高
  ✅ 攻击流量不会消耗 CDN 的流量额度

2.2 CDN 在前(部分场景)

用户 → CDN → WAF → 源站

优点:
  ✅ CDN 先就近接入,降低延迟
  ✅ 静态资源可被 CDN 直接返回,无需经过 WAF

缺点:
  ⚠️ 攻击流量会消耗 CDN 流量,成本可能上升
  ⚠️ 缓存层可能缓存了被攻击伪造的内容(缓存投毒)

2.3 一体化产品(最省心)

不少云厂商推出”WAF + CDN”一体化产品,边缘节点本身就同时具备安全检测和缓存能力,不存在顺序问题,配置也最简单。

三、分属不同厂商时的配置

如果 WAF 和 CDN 是两家服务商,需要处理 CNAME 链:

解析链路:
  www.example.com
    → CNAME → www.example.com.cdn.com   (CDN 厂商)
    → CNAME → www.example.com.waf.com   (WAF 厂商)
    → A     → 182.61.129.196            (最终节点)

配置要点:
  1. 在 WAF 控制台把源站设为 CDN 的回源地址
  2. 在 CDN 控制台把回源地址设为真实源站
  3. 让域名解析按期望顺序串联

四、必须处理的三个问题

4.1 真实 IP 透传

经过多层代理,源站看到的 IP 早已不是访客的。必须在 Nginx 配 real_ip 模块,并逐层设置信任的代理段:

set_real_ip_from 182.61.129.0/24;   # WAF 回源段
set_real_ip_from 1.2.3.0/24;         # CDN 回源段
real_ip_header X-Forwarded-For;
real_ip_recursive on;

4.2 缓存策略

  • 动态页面(如登录后的页面)不缓存,避免串号
  • 静态资源(js/css/图片)长缓存,加版本号或 hash
  • API 接口默认不缓存,除非是纯查询类
  • 带 Cookie 的请求通常应绕过缓存

4.3 回源限制

源站要同时允许 WAF 和 CDN 的回源 IP 访问,但两者的 IP 段不同。建议把所有回源段整理成一份白名单,定期更新。

五、性能与成本权衡

关注点WAF 在前CDN 在前
攻击流量成本低(被 WAF 拦掉)高(消耗 CDN 流量)
静态资源延迟略高(多绕一层)更低
缓存污染风险较高
配置复杂度
推荐度⭐⭐⭐⭐⭐⭐⭐⭐

六、小结

WAF 和 CDN 是安全与加速的黄金搭档,可以也建议一起用。顺序上推荐”WAF 在前”,让脏流量在进入加速层之前就被清理干净。如果嫌复杂,直接选一体化产品最省事。无论哪种组合,真实 IP 透传和回源白名单都是必须处理好的基础配置。

如果你的站点正被恶意爬虫、CC 攻击困扰,或需要一套开箱即用的 Web 应用防护,可以了解百度云防护 Web 应用防火墙专业版 299 元/月,年付 2399 元,可联系主机吧客服购买)——支持自定义访问策略、URI 频率限制、BOT 防护、威胁情报与 API 防护,无需改动源站代码,改 DNS 即可接入。包年包月计费,流量峰值买多少防多少,无后付费陷阱。

给TA打赏
共{{data.count}}人
人已打赏
在线客服
在线客服
热线电话
QQ客服
电子邮箱
suduwangluo