加速节点回源时被安全设备判成攻击,同一页面时而正常时而返回拒绝,源站日志里能看到对应的拦截记录。
这类报错背后常见的原因有几处,逐个排除就行。回源地址没有加入白名单;请求头里的地址被判为异常特征;拦截规则按访问频率触发,正常回源也命中。
先看源站日志的拦截记录
grep -c ' 403 ' /var/log/nginx/access.log
再往下确认回源来源地址段
awk '{print $1}' /var/log/nginx/access.log | sort -u | head
接着把回源段加入白名单
echo '在安全设备中添加回源地址段'
复验页面返回码
curl -o /dev/null -s -w '%{http_code}\n' https://域名/
当时还开着另一个排查窗口,两边日志对照着看才定位到。
同一份数据我导出了两份,一份留底,一份拿来试。
恢复的判定其实很直接。页面返回码稳定为正常,源站日志里不再出现误拦记录,回源流量正常。
白名单要写回源段而不是用户侧地址;回源段会变,定期核对一次,别配完就忘。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。