七层负载均衡(Nginx/HAProxy)
七层负载均衡工作在应用层(HTTP/HTTPS),能够解析完整的 HTTP 请求,并根据 URL、Header、Cookie 等信息做精细化路由。相比四层负载均衡,七层负载均衡的性能稍低,但功能更丰富,是微服务网关和 Web 服务的首选。
七层负载均衡的核心能力
四层负载均衡只能看到 IP + 端口,七层负载均衡能看到完整的 HTTP 请求:
七层负载均衡能做的事情:
- 路径路由:根据 URL 路径分发到不同后端
- Header 改写:添加、删除、修改请求头
- Cookie 处理:会话保持、Cookie 注入
- SSL 终结:HTTPS 证书管理、加解密
- 限流熔断:基于请求特征的限流
- 认证授权:JWT 验证、IP 黑名单
Nginx 负载均衡
Nginx 是最流行的七层负载均衡器,以高性能和高稳定性著称。
upstream 配置
负载均衡算法
路径路由
健康检查
Nginx 不支持主动健康检查(商业版除外),生产环境通常配合 Consul/Nginx Plus 实现主动探活。
HAProxy 负载均衡
HAProxy 是另一个高性能的七层负载均衡器,以功能丰富著称:
基础配置
ACL 配置
HAProxy 的 ACL 功能非常强大:
会话保持
Nginx vs HAProxy
选择建议:
- 需要 Web 服务器功能(静态资源、缓存)选 Nginx
- 追求极致负载均衡性能选 HAProxy
- 需要复杂 ACL 选 HAProxy
七层 vs 四层:性能与功能权衡
最佳实践:四层做入口流量分发,七层做细粒度路由。四层负责高性能转发,七层负责业务路由。
总结
七层负载均衡(Nginx/HAProxy)工作在 HTTP 层,提供丰富的路由和流量控制能力:
Nginx:
- Web 服务器 + 负载均衡一体化
- 配置简洁,社区活跃
- 支持路径路由、Header 改写、缓存
HAProxy:
- 专注负载均衡,性能极高
- ACL 功能强大
- 支持主动健康检查
七层负载均衡的选择取决于业务需求:
- 需要静态资源服务选 Nginx
- 追求极致性能选 HAProxy
- 需要复杂路由选 HAProxy
下一节我们将讲解具体的负载均衡算法——轮询与加权轮询。