负载均衡器如何工作
客户端连接统一的公共端点,无需自行选择服务器。负载均衡器接收每个连接或请求,选择健康的后端服务器并转发流量。
客户端 → 负载均衡器 → 服务器 A
→ 服务器 B
→ 服务器 C
健康检查会通过 TCP 连接或 /health 等 HTTP 路径检测后端服务器。未通过健康检查的服务器会从可选列表中移除,恢复正常后再重新加入。4 层负载均衡器根据 IP 地址、端口等网络层和传输层信息路由流量。7 层负载均衡器可以根据主机名、路径、标头或 Cookie 路由已解密的 HTTP 流量。
常见负载均衡方法
- **轮询:**按顺序将每个新请求或连接发送到下一台服务器。
- **最少连接:**选择当前活动连接数最少的服务器。
- **加权负载均衡:**为服务器设置不同的容量权重,将更多流量发送到容量更大的服务器。
- **基于哈希的路由:**根据客户端 IP、Cookie 等值,将请求稳定地路由到同一台后端服务器。这种方法可以实现粘性会话。
最合适的方法取决于请求持续时间、后端服务器容量,以及会话是否必须始终路由到同一台服务器。
负载均衡器与反向代理的区别
| 负载均衡器 | 反向代理 | |
|---|---|---|
| 主要作用 | 分配工作负载 | 作为后端服务器的代理 |
| 后端服务器 | 通常有多台 | 一台或多台 |
| 路由依据 | 容量、健康状态或规则 | 主机、路径或服务器规则 |
两者的功能有重叠。许多应用层负载均衡器也属于反向代理,因为它们代表后端服务器接收请求。反向代理也可能只负责缓存、TLS 终止或过滤,并不均衡流量。
负载均衡如何影响代理流量
网站的负载均衡器会将代理服务器的出口 IP 视为客户端网络地址。除非网站采用会话保持或共享会话存储,否则来自该 IP 的请求可能会到达不同的后端服务器。
代理基础设施也可以在多台网关服务器之间均衡连接,以此分配服务工作负载,但这与轮换目标网站所见的出口 IP 并不相同。
没有可用的后端服务器时,充当网关的负载均衡器可能会返回 503 服务不可用。收到后端服务器的无效响应后,也可能返回 502 错误网关。
常见问题
负载均衡器和反向代理相同吗?
不同。负载均衡负责分配流量,反向代理则是位于服务器前端的中间层。同一套系统经常同时承担这两种职责。
负载均衡器能防止服务中断吗?
如果一台后端服务器发生故障,只要仍有其他健康的后端服务器,并且负载均衡层具备冗余能力,就能维持服务可用。如果所有后端服务器或某项共享依赖都发生故障,负载均衡器便无法维持服务。
负载均衡器会隐藏后端服务器的 IP 地址吗?
通常,客户端只需要知道负载均衡器的公共地址。不过,DNS 记录、响应数据或配置错误仍可能暴露后端地址,因此负载均衡不能作为完整的安全防护措施。