Nginx 中最少连接算法识别后端服务器繁忙状态机制

大磊君_5561

大磊君_5561

2026-07-22

223人浏览

原创

least_conn算法仅统计后端活跃tcp连接数并选择最少者,不感知cpu、响应时间等指标;其有效性依赖keepalive复用、后端连接池及健康检查配合,适合长连接与耗时差异大的场景。

nginx 中最少连接算法识别后端服务器繁忙状态机制

Nginx 的最少连接算法(least_conn)本身不识别“繁忙”,它只统计并比较各后端当前与 Nginx 保持的活跃 TCP 连接数,然后把新请求交给数字最小的那个。所谓“繁忙”,是运维人员对高连接数的主观解读;而 Nginx 只做客观计数——连接少 ≠ 负载低,但通常意味着该节点正在处理的并发请求更少。

least_conn 如何间接反映后端压力

它依赖一个隐含前提:后端处理能力相对均衡、连接生命周期能反映真实负载。

  • 每个活跃连接通常对应一个未完成的请求(如长连接下的 WebSocket、文件上传、gRPC 流)
  • 若某后端因 CPU 卡死、GC 暂停或慢 SQL 导致响应延迟,请求堆积 → 连接数持续升高 → least_conn 自动绕开它
  • 反之,刚完成请求、连接已释放的节点连接数归零,成为首选

但这个机制有边界:

  • 它不看 CPU 使用率、内存占用、响应时间或错误率
  • 如果后端进程僵死但 TCP 连接未断(如 hang 住但 keepalive 未超时),连接数仍被计入,“假空闲”会导致误判
  • 短连接场景下(每个请求建一次连、立刻关),连接数瞬间归零,least_conn 几乎退化为轮询

让连接数真正代表“繁忙程度”的关键配置

要让 least_conn 发挥作用,必须确保连接数统计有意义:

  • 启用 keepalive 连接复用

    Nginx Config Linter
    Nginx Config Linter

    对 Nginx 配置文件进行语法检查、验证和安全、性能审计。

    下载
    • upstream 中配置 keepalive 32;(推荐 16–64)
    • 后端服务也要支持连接池(如 Tomcat 设置 maxKeepAliveRequests > 0,Go HTTP Server 默认复用)
    • 避免每请求新建连接,否则连接数无法累积反映真实并发压力
  • 配 max_fails + fail_timeout 主动剔除异常节点

    • 例如:server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;
    • 当 Nginx 发现连续失败(连接拒绝、超时、5xx),就临时移出调度池,防止连接数虚高却持续被选中
  • 叠加 passive 健康检查(proxy_next_upstream)

    • 在 location 中配置:
      proxy_next_upstream error timeout http_500 http_502 http_503;
      proxy_next_upstream_tries 3;
    • 一旦后端返回 502/503 或响应超时,Nginx 会尝试下一个节点,并触发 max_fails 计数
  • (进阶)启用主动健康检查(需 Nginx Plus 或第三方模块)

    • 定期发 /health 请求,根据 HTTP 状态码和响应内容判断是否存活
    • 比被动检查更早发现“连接数正常但业务已卡死”的情况

实际效果取决于后端行为模式

  • ✅ 适合:请求耗时差异大(如 AI 推理 100ms~5s)、长连接多(WebSocket、SSE)、后端无明显性能碎片
  • ⚠️ 效果弱:所有请求都很快(

本质上,least_conn 是一个基于连接状态的轻量级负载信号。它不智能,但足够直接——只要连接数能真实反映处理队列长度,它就能把流量导向“此刻最空”的节点。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2283

5

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6010

13

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5346

10

服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2672

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

896

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习