SuperAPI AI 工具集

load-balancing

通用与其它

查看项目

更新于 10-15 17:24

技能介绍

用途:在多个应用服务器之间分发 HTTP/HTTPS 流量,以获得高可用、可扩展和容错能力。适用场景包括多后端流量分发、用健康检查绕过不健康实例、在负载均衡器终止 TLS、用流量切换实现蓝绿或金丝雀发布、在单一入口后水平扩展。

前提:两台或更多运行同一应用的后端服务器;用于 HTTPS 终止的 TLS 证书;AWS 场景需跨可用区的公有与私有子网 VPC;nginx/HAProxy 需有 root 权限的 Linux 服务器。

主要能力与用法:

  • nginx:用 upstream 定义后端,支持轮询(默认)、least_conn、ip_hash 等;可用 weight 设权重、backup 设备用、down 临时摘除。健康检查需 nginx Plus 或第三方模块。示例:proxy_pass http://app_backend; 并设置 Host、X-Real-IP、X-Forwarded-For、X-Forwarded-Proto 等头。
  • HAProxy:可配置 frontend/backend,按路径分流(如 /api/、/ws/),支持 balance roundrobin、leastconn、source、uri、random(2);用 option httpchk 做健康检查。管理命令:测试配置 haproxy -c -f /etc/haproxy/haproxy.cfg;重载 sudo systemctl reload haproxy;CLI 查看统计与切换状态用 socat 连接管理套接字(如 set server web_servers/web1 state drain/maint/ready)。
  • AWS:用 aws elbv2 创建 ALB/NLB、目标组、注册目标、创建 HTTPS 监听器与 HTTP 301 重定向监听器;用 describe-target-health 查看健康。也提供 Terraform 资源示例(aws_lb、aws_lb_target_group、aws_lb_listener),含健康检查、粘性会话与 TLS 策略配置。

算法对照:轮询、最少连接、IP 哈希、URI 哈希、随机(两选)等,并列出 nginx 与 HAProxy 对应写法。

排障:涵盖后端全部不健康、502、流量不均、连接超时、TLS 握手失败、ALB 返回 503、WebSocket 断开等常见症状与修复方向。

限制:部分功能(如 nginx 主动健康检查)需商业版或第三方模块;示例为通用配置参考,实际参数和证书路径需按环境调整;未提供具体收费、性能数据或其他平台实现。