负载均衡把后端全部标记为异常,站点返回不可用,直接访问后端地址却完全正常。

排查方向其实有限,先把可能性排一排。健康检查路径返回了重定向或者非两百状态。还有一种是检查用的域名没有配置,请求落到默认站点。

少数情况下是后端只允许特定来源访问,检查请求被拒。

上来先在本机模拟检查请求

curl -I -H 'Host: 域名' http://127.0.0.1/health

再往下确认返回状态码

curl -o /dev/null -s -w '%{http_code}\n' http://127.0.0.1/health

接着核对健康检查路径与端口

grep -rn health /etc/nginx/conf.d/

等前面都确认过,再放行检查来源地址

iptables -S | grep 100.64

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

别只看报错消失,验证要多做一步。负载均衡侧显示后端健康,流量恢复正常分发。

提醒一点。检查请求的 Host 和来源地址常被忽略,默认站点返回两百也会被判成健康,实际访问的却是错误内容。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189