阿里云国际版负载均衡:流量只流向一台服务器的原因与解决方法 🌐
问题描述
在阿里云国际版(Alibaba Cloud International)上创建负载均衡(SLB,Server Load Balancer)后,有时可能会遇到 所有流量只被转发到其中一台后端服务器 的情况,没有实现负载均衡的效果。
常见原因
- 健康检查异常 🛑
只有一台服务器通过了负载均衡的健康检查,其它服务器被判定为不健康,因此流量只分配给健康的服务器。
- 会话保持(粘性会话)配置 🔒
开启了会话保持(Session Persistence),导致同一个客户端的请求总是被转发到同一台服务器。
- 权重设置不均 ⚖️
后端服务器的权重设置有误,部分服务器权重为0或过低,所有流量分配给权重高的服务器。
- 监听配置错误 🚦
监听端口或协议设置不适配目标服务器,导致部分服务器收不到请求。
- 服务器自身防火墙/安全组限制 🔐
某些后端服务器未开放相关端口,或者安全组配置限制了访问。
- 后端服务器服务未启动 🛠
服务器应用未正常运行,导致无法响应健康检查和负载均衡转发的请求。
如何排查与解决?🩺
- 检查健康检查状态
在阿里云控制台 > SLB实例 > 后端服务器,确认每台服务器的健康状态。
✔️ 解决方法: 修复未通过健康检查的服务器,确保服务进程监听对应端口,并允许负载均衡器的健康检查IP访问。
- 核查会话保持设置
检查监听的“会话保持”是否开启,若非业务强制需要,可以关闭,避免粘连。
- 调整后端服务器权重
确保所有后端服务器的权重为合理数值(如100),不要设置为0。
- 验证监听规则配置
检查监听端口、协议,确保和后端服务器实际服务一致。
- 检查安全组和防火墙
确认负载均衡访问后端服务器的端口已经在安全组及服务器防火墙中放通。
- 检查服务器服务本身
登录后端服务器,确认相关服务运行且监听正确端口。
小贴士 💡
- 多用 Telnet 和 curl 命令测试端口连通和服务健康。
- 结合阿里云的监控日志,分析流量分布与异常。
常见修正步骤示例
1. 修复未通过健康检查的实例
2. 关闭或优化会话保持策略
3. 确认所有服务器权重设置一致
4. 检查监听设置和安全组配置
5. 重启或修复后端服务
⏱️ 按照以上步骤排查和修正,大多数流量只流向单台服务器的问题都可以顺利解决!如遇特殊场景,欢迎联系阿里云技术支持获得帮助。