负载均衡把后端全部标记为异常,站点返回不可用,直接访问后端地址却完全正常。
排查方向其实有限,先把可能性排一排。健康检查路径返回了重定向或者非两百状态。还有一种是检查用的域名没有配置,请求落到默认站点。
少数情况下是后端只允许特定来源访问,检查请求被拒。
上来先在本机模拟检查请求
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 和来源地址常被忽略,默认站点返回两百也会被判成健康,实际访问的却是错误内容。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。