least_conn

NGINX 中的 'least_conn' 指令在 upstream 组中选择活动连接数最少的服务器。 — NGINX HTTP Core

least_conn
upstream
语法least_conn;
默认值none
上下文upstream
模块NGINX HTTP Core
参数none

说明

'least_conn' 指令在 'upstream' 上下文中使用,用于实现一种负载均衡方法,将传入请求定向到活动连接数最少的服务器实例。该行为可确保负载在服务器之间更平均地分配,尤其在服务器处理能力不同或请求资源强度各异的场景中更为有利。对于用户需求波动较大的应用,此指令非常适合,可防止部分服务器过载而其他服务器闲置。与按顺序或随机方式分配请求的 round-robin 或其他方法不同,'least_conn' 会动态评估 upstream 块中每台服务器的当前状态,并根据活动连接数做出选择。\n\n当指定 'least_conn' 指令时,NGINX 不会考虑服务器的响应时间或请求的性质,而是仅根据连接数所反映的当前负载来优先选择。这是一种在 Web 集群中最大化资源分配效率的有效策略,尤其适用于长连接或会话时长差异较大的应用。

配置示例

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

确保上游服务器的健康状况得到适当监控;如果某台服务器宕机或不健康,可能不会在连接计数中被排除,导致负载分配效率低下。

在所有服务器具有相同连接数的场景中无效;你应考虑其他因素以有效地平衡负载。