random

'random' 指令指定在 upstream 区块中使用的负载均衡方法将随机选择一个服务器。 — NGINX HTTP Core

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

说明

'random' 指令在 upstream 上下文中使用,允许 NGINX 通过从可用的 upstream 服务器池中随机选择将请求路由到哪台服务器来实现负载均衡。该指令有助于改善传入请求的分配,确保单台服务器不会因连续请求而被压垮。启用后,'random' 指令与配置中定义的现有 upstream 服务器一起工作,为每个请求随机选择其中一台。 该选择过程通过一个内部算法来实现,该算法利用随机数生成器在每次请求到达 upstream 区块时从服务器池中挑选一台服务器。该指令不接受任何参数,因此仅基于它在 upstream 定义中的存在来运行。另一个重要方面是该方法不考虑服务器负载或健康状态,因此在需要更智能的负载均衡方法(例如 'least_conn' 或 'ip_hash')的场景中可能不够理想。 因此,虽然在轻量工作负载下使用 'random' 指令可以帮助均匀分发请求,但在高负载且服务器性能差异显著的环境中,管理员必须注意其局限性。

配置示例

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

在高流量场景中,如果服务器性能存在差异,使用 'random' 可能导致服务器负载不均。

请确保将 'random' 与 health checks 结合使用,以获得更具弹性的配置。