1.
概述:范围与风险提示
1) 本文聚焦宝塔面板(BT)下部署 WAF 后在接入 CDN 时常见故障与回滚流程。
2) 适用于 VPS/云主机、域名解析、Nginx/Apache 等 Web 服务。
3) 风险包括业务中断、证书不匹配、真实 IP 丢失与误报封禁。
4) 操作前建议将 DNS TTL 调低至 60 秒以便快速回滚。
5) 强烈建议在非高峰期验证,且做好备份(配置、证书、iptables 规则)。
2.
常见故障表现(接 CDN 后的典型症状)
1) 页面返回 502/504/521 或 522 错误,表示回源链路或 TLS 握手异常。
2) 真实客户端 IP 变为 CDN 节点 IP,导致 WAF 误判放行/封禁。
3) 大量 403/406/415 等 WAF 误报导致正常业务请求被拦截。
4) DDoS 流量激增但回源带宽未受益,导致 origin CPU/连接耗尽。
5) SSL 证书提示不匹配或 SNI 错误,访问 HTTPS 异常。
3.
排查流程与关键命令(一步步诊断)
1) DNS 与解析:dig +short @8.8.8.8 域名,确认解析到 CDN IP;dig 域名 @本地域名服务。
2) 回源直连测试:curl -I -H "Host: yourdomain.com" --resolve yourdomain.com:443:来源IP https://yourdomain.com/,验证 origin 是否正常响应。
3) 日志与连接:tail -n 200 /www/wwwlogs/yourdomain.log;ss -tunlp | grep nginx;查看并行连接数。
4) 网络抓包:tcpdump -i eth0 host CDN节点IP or port 443 -w capture.pcap,确认 TLS 与 SNI。
5) WAF 配置检查:cat /www/server/panel/vhost/waf_conf.conf(示例路径),查看规则集与白名单。
4.
回滚操作规范(步骤与时间策略)
1) 立即降级 DNS TTL 至 60s(若尚未)并记录当前解析记录与 TTL。
2) 临时移除 CDN:将域名解析改回 origin IP(示例 origin:203.0.113.45),等待 TTL 生效后验证业务。
3) 禁用或放宽 WAF:在宝塔 WAF 面板中切换为“学习模式”或临时关闭高阶规则集。
4) 恢复 origin 配置:重置 Nginx:nginx -t && systemctl restart nginx,恢复 iptables/防火墙规则。
5) 验证指标:观察 5 分钟内错误率、平均响应时间与并发连接,确认恢复正常再逐步接回 CDN。
5.
数据演示与真实案例(含服务器配置示例)
1) 案例背景:客户 A(域名:www.example.cn)VPS:2 vCPU / 4 GB RAM,origin IP 203.0.113.45,Nginx worker_processes 2。
2) 问题出现:接入 CDN 后 10:12 开始报 502,WAF 日志显示大量 403 来自 CDN IP。
3) 处理结果:回滚 CDN、关闭 WAF 规则、高速恢复。以下为接入前后指标对比:
| 时间点 | 平均响应(ms) | 5xx 错误/分钟 | CPU 使用(%) |
| 接入前 | 120 | 0 | 25 |
| 接入后高峰 | 850 | 45 | 92 |
| 回滚后30min | 130 | 1 | 30 |
4) 实例配置片段(Nginx):
worker_processes 2; worker_connections 1024; client_max_body_size 50m;
5) 建议白名单:set_real_ip_from 203.0.113.0/24; real_ip_header X-Forwarded-For; 以保留真实客户端 IP。
6.
预防措施与最佳实践清单
1) 接入前:将 DNS TTL 调低、备份所有证书与配置文件、在测试子域完成回源验证。
2) WAF 配置:先开启学习/宽松模式,利用 48 小时流量观察再启严格策略。
3) 白名单策略:添加 CDN 源 IP 段到可信列表并配置 real_ip_header,避免误判。
4) 监控告警:设置 5xx 告警阈值(示例:5xx > 10/min 触发)与流量/CPU 高警报。
5) 回归演练:定期做“接 CDN → 回滚”的演练,并记录回滚所需时间与问题清单。