Nginx 七层负载均衡因需深度解析 HTTP 报文,延迟通常比四层高 20%~50%,但某头部直播平台采用四层 + 七层分层架构后,首屏加载速度提升 40%,SSL 握手失败率下降至 0.1% 以下。
原因分析
四层负载均衡工作于 OSI 模型第四层——传输层,仅解析 IP 地址、端口号、TCP/UDP 标志位等基础传输信息,调度决策仅依赖四元组(源 IP、源端口、目标 IP、目标端口),转发速度快、处理逻辑简单,典型 QPS 可达 10 万+。七层负载均衡工作于第七层——应用层,可解析 HTTP 请求的 URL、Header、Cookie、Body 等完整内容,但因需解密(TLS termination)、解析、重组报文,资源消耗更高。关键区别在于:四层仅看地址,七层读内容;四层是搬运工,七层是调度官。
四层负载均衡配置方案
Nginx 四层负载均衡需使用 stream 模块,配置示例如下:
stream {
upstream mysql_backend {
server 10.0.0.1:3306;
server 10.0.0.2:3306;
}
server {
listen 3306;
proxy_pass mysql_backend;
}
}关键配置说明:stream 模块必须包含在 nginx.conf 中,与 http 模块同级;upstream 块定义后端服务器组;proxy_timeout 设置连接超时时间;proxy_connect_timeout 设置连接建立超时。典型应用场景包括数据库负载均衡、SSH/RDP 等非 HTTP 协议代理、游戏服务器负载均衡。某头部直播平台边缘节点部署四层负载均衡(基于 DPDK 加速),承接 200 万 + 并发 UDP 直播流,延迟稳定在 3ms 内。
七层负载均衡配置方案
Nginx 七层负载均衡使用 http 模块,配置示例如下:
http {
upstream http_backend {
least_conn;
server app1.example.com:8080;
server app2.example.com:8080;
keepalive 32;
}
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://http_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
}
}
}核心能力包括:URL 路径/域名级路由(如多租户 SaaS 系统按域名分流)、HTTPS 全链路 SSL 卸载与双向认证、内容缓存、压缩、重写(如自动添加 X-Forwarded-For)、高级安全策略(集成 WAF、防 CC 攻击、IP 黑白名单)、精细化灰度发布(按 Header 如 X-App-Version: beta 切流)。七层负载均衡器进行了两次 TCP 请求(客户端到负载均衡器、负载均衡器到后端服务器),而四层代理只进行一次 TCP 请求。
注意事项
1. 性能权衡:在高并发、低延迟场景(如游戏联机、金融实时交易)中,四层仍是首选;若业务依赖内容识别(如灰度发布、WAF 集成),七层不可替代。2. 会话保持:四层仅支持 IP/端口级会话保持(如基于源 IP 的 hash),七层可实现 Cookie 值路由。3. 协议支持:四层支持任何基于 TCP/UDP 的协议(如 MySQL、Redis、MQTT),七层主要针对 HTTP/HTTPS 等应用层协议。4. 健康检查:四层仅支持基础健康检查(端口连通性),七层支持基于 HTTP 状态码的健康检查(如 http_500 http_502 http_503)。5. 架构建议:对于一般的应用来说,有了 Nginx 就够了;但对于一些大的网站,一般会采用 DNS+ 四层负载 + 七层负载的方式进行多层次负载均衡。
参考来源
来源:酷番云知识库 - 负载均衡 4 层和 7 层有什么区别?4 层和 7 层负载均衡原理及应用场景对比(2026 年 4 月 17 日)
来源:酷番云知识库 - 四层七层负载均衡原理与应用场景对比(2026 年 4 月 15 日)
来源:CSDN - 计算机网络——Nginx 负载均衡配置指南:四层与七层负载均衡实践(截至 2025 年 5 月 12 日)
来源:知乎 - 跟字节大佬聊了下四层代理和七层代理,我人傻掉了(2023 年 6 月 6 日)