记录一下那天晚上的排查过程。源站前面的防火墙按失败登录次数自动封 IP,把 WAF 的回源地址段封了两小时,期间所有请求返回 521,WAF 控制台显示源站不可达,直连源站却正常。

刚开始盯着「源站只放行了旧的回源段,新段被默认策略拒绝」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。回源地址段被 fail2ban 的 SSH 规则误封。也可能是WAF 节点扩容后新增 IP 没有加进白名单。

另外,封禁记录写在内存里,重启也没自动解除。

从 WAF 节点确认回源 IP 段

curl -s https://www.example.com/cdn-cgi/trace | grep ip

随后在源站查看被封的记录

fail2ban-client status sshd

再往下把回源段加进白名单并解封

fail2ban-client set sshd unbanip 203.0.113.24

等前面都确认过,再确认回源链路恢复

curl -sI -H 'X-Forwarded-For: 203.0.113.24' https://origin.example.com/ | head -1

改完先别撤,确认这几项。WAF 控制台状态回到正常,全站 521 消失,回源日志里出现正常请求,蜘蛛抓取同步恢复。

这里还有个坑。回源 IP 段要当成基础设施资产维护,扩容和换段之前先同步白名单,否则整站会在几秒内不可用。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189