1) 当WAF与CDN同时工作时,流量链路包含CDN边缘、回源与源站三段。
2) 错误可出现在DNS解析、CDN缓存策略、WAF规则、或源站网络/应用层。
3) 误判(false positive)会导致正常流量被拦截或缓存失效。
4) DDoS或爬虫攻击常同时触发CDN与WAF限速与阻断策略。
5) 因此需要系统化的步骤来采集证据并按层级排查以缩短恢复时间。
1) 收集域名解析:A/AAAA/CNAME记录、TTL与解析节点结果。
2) 列出CDN提供商、节点ID、缓存策略、回源协议(HTTP/HTTPS)、回源IP白名单。
3) 获取WAF策略快照:拦截规则ID、速率限制、IP黑白名单与日志开关状态。
4) 准备源站服务器信息:VPS/主机型号、系统、Nginx/Apache版本、带宽上限、连接数限制。
5) 打开必要日志:CDN访问日志、WAF事件日志、源站access/error、系统网络监控数据(netstat/iostat)。
1) 第一步:在发生故障时先用dig/host检查域名是否指向CDN节点及是否生效。
2) 第二步:查看CDN控制台实时访问量与回源HTTP状态码分布,判断是否为缓存层或回源层异常。
3) 第三步:核对WAF日志中被拦截的请求样本(URI、来源IP、User-Agent、规则ID)。
4) 第四步:在源站查看access.log对应时间段请求是否到达,确认是回源被阻断还是源站拒绝。
5) 第五步:结合系统资源监控(CPU、内存、网口)与网络连接数,判断是否为资源耗尽或攻击导致的行为异常。
1) 以下为一次故障瞬间各项指标示例(单位:秒/件/百分比):
2) 表格展示CDN/WAF/源站的关键指标便于对比排查。
3) 请注意表中“拦截率”与“回源错误率”的关系,用于判断是否WAF误阻造成高回源4xx。
4) 表格数据为模拟采样,真实排查请使用控制台与原始日志核验。
5) 如果拦截来源IP集中在少数AS或国家,应考虑在CDN侧临时放通或加速白名单。
| 组件 | TPS | 拦截率 | 回源错误率 |
|---|---|---|---|
| CDN边缘 | 12000 req/s | 6.5% | — |
| WAF规则集 | 12000 req/s | 6.5% | — |
| 源站(VPS) | 800 req/s | — | 22% 5xx/4xx |
1) 背景:客户使用Cloudflare CDN+自定义WAF规则,源站为阿里云ECS(Ubuntu 20.04,2vCPU/4GB,带宽1Gbps)。
2) 现象:促销期间用户下单失败,CDN访问量峰值150k req/s,但源站仅收到约1k req/s。
3) 排查:CDN日志显示大量403由WAF规则ID 210触发,规则为“严格SQL注入检测”。
4) 处理:临时将规则210从阻断改为告警,回源请求恢复至峰值的85%,下单失败问题解除。
5) 后续:优化规则210的响应正则与触发阈值,并在CDN侧启用速率限制与客户端指纹识别以防DDoS。
1) 制定分级响应流程:监控告警→初步确认(CDN/WAF/源站)→临时策略→根因修复。
2) 在非高峰先做小流量回归测试,修改WAF规则时启用“学习模式”与灰度发布。
3) 将重要API和登录/下单域名列入CDN回源白名单以减少误拦影响。
4) 定期备份WAF策略配置并保存控制台审计日志用于事后分析。
5) 建议源站配置:Nginx keepalive 100,worker_connections 10240,系统ulimit开启足够文件句柄,内核网络参数tcp_tw_reuse开启。
