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 结合使用,以获得更具弹性的配置。