
一、WAF 本身会故障吗
会。任何系统都可能故障:节点宕机、网络中断、配置推送出错、证书过期。WAF 一旦不可用,你的网站就直接不可访问——它是链路上的一环,故障影响面很大。
所以高可用设计不是可选项,而是必选项。
二、五个层级的可用性设计
2.1 接入层:多节点
单一节点必然存在单点故障风险。云 WAF 通过多节点 + 智能 DNS 实现:任一节点故障,DNS 自动把流量引向其他健康节点。
DNS 智能调度原理:
用户解析域名
↓
返回"健康 + 就近"的节点 IP
↓
若该节点健康检查失败
↓
自动从返回列表中剔除,改用其他节点
2.2 链路层:多线路
单条线路(如某运营商专线)故障会导致部分用户访问异常。多线路接入可以让不同运营商的用户走各自的优质路径,同时互为备份。
2.3 回源层:多源站 + 健康检查
WAF 回源到源站时,如果源站单点故障,防护就失去了意义。要配置多个源站并开启健康检查:
控制台 → 源站配置
源站列表:
115.159.82.67:443 权重 1 [健康检查开启]
115.159.82.68:443 权重 1 [健康检查开启]
检查间隔:30 秒
失败阈值:连续 3 次失败则摘除
恢复阈值:连续 2 次成功则恢复
2.4 数据层:配置多副本
规则配置、白名单、证书这些数据要有多副本存储,避免单点损坏导致配置丢失。云 WAF 通常会自动做多副本,自建方案要自己备份。
2.5 监控层:外部探针
最可靠的监控是”外部视角”——用第三方探针从多个地点探测你的网站,发现不可用立即告警。
建议配置的监控项:
├─ HTTP 状态码(200 为正常)
├─ 响应时间(< 3 秒)
├─ 首页内容校验(关键字是否存在)
├─ SSL 证书有效期
└─ 从多个地理位置的探测
三、故障切换的机制
完整切换流程:
① 监控系统发现节点 A 响应超时
↓ (10-30 秒内)
② 健康检查标记 A 为不可用
↓
③ DNS 调度:新请求不再分配 A
↓
④ 老用户受 TTL 影响,几分钟内逐步迁移
↓
⑤ 用户几乎无感知(有缓存时可能短暂受影响)
↓
⑥ 节点 A 修复后,健康检查通过,自动回归
四、自建方案的高可用
如果你用的是软件 WAF,需要自己搭高可用架构:
方案一:主备模式
├─ 两台服务器各跑一套 WAF
├─ keepalived 提供虚拟 IP
└─ 主故障时备机接管 VIP
方案二:负载均衡模式
┌─────────────┐
│ 负载均衡 │
└─────────────┘
↓ ↓
WAF-1 WAF-2
↓ ↓
└────┬────┘
源站集群
方案三:混合
云 WAF 做主,自建软件 WAF 做源站纵深
→ 云 WAF 故障时,至少源站还有防护
五、还得考虑这些
| 风险点 | 影响 | 应对 |
|---|---|---|
| 证书过期 | HTTPS 全站不可访问 | 设置到期提醒,自动续期 |
| 配置误操作 | 防护失效或网站打不开 | 变更前备份,支持一键回滚 |
| 规则推送异常 | 大面积误拦 | 灰度发布 + 快速停用 |
| 厂商服务中断 | 网站不可访问 | 选择有 SLA 的厂商,准备应急预案 |
| DNS 故障 | 域名无法解析 | 使用可靠的 DNS 服务商 |
六、小结
WAF 高可用要覆盖接入、链路、回源、数据、监控五个层级。云 WAF 在多节点容灾和智能调度上开箱即用,省心;自建方案则需要自己搭主备或负载均衡架构。无论哪种方案,外部监控探针、证书到期提醒、配置备份和回滚能力都是不可缺少的配套。
