负载均衡指南

算法对比

算法工作方式最适合
轮询 (Round Robin)按顺序依次分发请求同质服务器、无状态应用
加权轮询按权重比例分配流量不同配置的服务器
最少连接发送到活跃连接数最少的服务器长连接(WebSocket、数据库)
加权最少连接结合权重与连接数混合负载
IP 哈希同一客户端 IP 路由到同一服务器无需 Cookie 的会话保持
随机随机选择服务器简单无状态负载
资源感知路由到资源最充裕的服务器CPU/内存密集型任务

Nginx Upstream 配置

http { # 轮询(默认) upstream backend_rr { server 10.0.0.1:8080; server 10.0.0.2:8080; server 10.0.0.3:8080; } # 加权 upstream backend_weighted { server 10.0.0.1:8080 weight=5; server 10.0.0.2:8080 weight=3; server 10.0.0.3:8080 weight=2; } # 最少连接 upstream backend_lc { least_conn; server 10.0.0.1:8080; server 10.0.0.2:8080; } # IP 哈希(会话保持) upstream backend_sticky { ip_hash; server 10.0.0.1:8080; server 10.0.0.2:8080; } server { listen 80; location / { proxy_pass http://backend_rr; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }

健康检查配置

upstream backend { server 10.0.0.1:8080 max_fails=3 fail_timeout=30s; server 10.0.0.2:8080 max_fails=3 fail_timeout=30s; server 10.0.0.3:8080 backup; # 其他节点故障时启用 }

HAProxy 配置

frontend http_front bind *:80 default_backend http_back backend http_back balance roundrobin option httpchk GET /health server s1 10.0.0.1:8080 check inter 5s rise 2 fall 3 server s2 10.0.0.2:8080 check inter 5s rise 2 fall 3 server s3 10.0.0.3:8080 check inter 5s rise 2 fall 3 backup

四层 vs 七层负载均衡

类型层级能力示例
L4(传输层)TCP/UDP速度快,不检查内容,基于 IP/端口路由HAProxy TCP 模式、AWS NLB
L7(应用层)HTTP/HTTPSURL 路由、头部检查、SSL 终止、压缩Nginx、HAProxy HTTP、AWS ALB