当前位置: 首页 > news >正文

Nginx stream模块是连接级别的负载均衡

在Nginx的stream模块中,upstream的权重配置实现的是连接级别的负载均衡,这和http模块不同。
当客户端发起一个新的TCP连接时,Nginx根据各upstream的权重值选择其中一个upstream建立连接,之后该连接上的所有数据传输都由这个upstream处理。


核心机制

  1. 连接级别的负载均衡

    • 当客户端与Nginx建立TCP连接时,Nginx会根据upstream块中配置的权重(weight),选择一个后端服务器建立连接。
    • 一旦连接建立,该连接的所有数据通信都会固定转发到同一个后端服务器。即使客户端通过此连接发送多个请求(例如通过TCP长连接),所有请求仍会由同一个后端处理。
  2. 权重的具体作用

    • 权重(weight)决定了后端服务器接收新连接的比例。例如:
      upstream backend {server backend1.example.com weight=3;server backend2.example.com weight=1;
      }
      
      • 在此配置中,backend1会接收约75%的新连接(3/(3+1)),backend2接收约25%。
    • 权重通过加权轮询算法实现,Nginx会在多个连接建立时按权重比例分配后端。
  3. 与HTTP模块的区别

    • 在HTTP模块(如http块中的upstream)中,负载均衡可以基于请求级别(例如每个HTTP请求独立分配后端)。但stream模块工作在传输层(TCP/UDP),不解析应用层协议(如HTTP),因此只能在连接建立时决定后端,无法针对单个请求进行负载均衡。

详细原理

  1. 连接建立阶段

    • 客户端发起TCP连接请求到Nginx。
    • Nginx根据配置的负载均衡算法(默认为加权轮询)选择一个后端服务器。
    • Nginx与后端服务器建立连接,并将客户端连接绑定到此后端。
  2. 数据传输阶段

    • 客户端通过已建立的TCP连接发送数据,Nginx仅作为代理转发数据,不会中断连接或重新选择后端
    • 如果客户端断开并重新建立连接,Nginx会再次根据权重分配新的后端服务器。
  3. 支持的负载均衡算法

    • weight参数与轮询(round-robin)算法配合使用。
    • 其他算法如least_conn(最小连接数)或hash(一致性哈希)也可能影响分配逻辑,但权重仅在轮询算法中直接生效。

示例场景

  • 场景1:客户端建立100个TCP连接到Nginx。
    • 如果backend1权重为3,backend2权重为1,则大约75个连接分配给backend1,25个给backend2
  • 场景2:客户端通过单个TCP连接发送10个请求。
    • 所有10个请求均由同一个后端服务器处理,Nginx不会重新分配。

总结

  • 权重影响的是连接分配比例,而非单个请求。
  • 适合场景:需要长连接的TCP服务(如数据库、SSH、SMTP),其中连接的建立成本较高,保持连接固定到后端更高效。
  • 不适用场景:需要按请求动态分配负载的应用层协议(如HTTP短连接),此时应使用HTTP模块的负载均衡功能。

相关文章:

  • 序列检测器
  • 【002】renPy android端启动流程分析
  • Docker从0到1:入门指南
  • 破解 Qt QProcess 在 Release 模式下的“卡死”之谜
  • Linux基础命令之目录管理——了解各种操作文件目录的命令,万字教学,超详细!!!(1)
  • windows防火墙
  • 特伦斯折叠重锤V70:实现专业演奏,从这里开始
  • 【Vue3】使用vite创建Vue3工程、Vue3基本语法讲解
  • JavaScript中的数字谜题:为何0.3的二进制不精确,浏览器却显示正确?
  • 07_SpringBoot2集成Redis连接失败
  • Git日志信息
  • nginx-整合modsecurity做waf
  • 【高并发架构设计】-1:高并发通用设计思想
  • 外出充电不发愁,倍思便携式移动电源成出行新宠
  • 【日撸 Java 三百行】Day 12(顺序表(二))
  • Linux笔记---信号(上)
  • I/O多路复用(select/poll/epoll)
  • 一.Gitee基本操作
  • K8S中构建双架构镜像-从零到成功
  • 反弹shell再入门
  • 《新时代的中国国家安全》白皮书(全文)
  • 乘联分会:上半年车市价格竞争温和,下半年价格战或再开启
  • 特朗普将启的中东行会如何影响伊美核谈判?专家分析
  • 成都锦江区一在建工地起火,致2人遇难1人受伤
  • 铁肩担道义,历史鉴未来——中共中央政治局委员、外交部长王毅谈习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 贵州省总工会正厅级副主席梁伟被查,曾任贵州省纪委副书记