Nginx 中如何配置轮询 (Round Robin) 负载均衡?

推荐答案

在 Nginx 中配置轮询(Round Robin)负载均衡非常简单。以下是一个基本的配置示例:

-- -------------------- ---- -------
---- -
    -------- ------- -
        ------ ---------------------
        ------ ---------------------
        ------ ---------------------
    -

    ------ -
        ------ ---

        -------- - -
            ---------- ---------------
        -
    -
-

在这个配置中,upstream 块定义了后端服务器的列表,Nginx 会按照轮询的方式将请求分发到这些服务器上。

本题详细解读

1. upstream

upstream 块用于定义一组后端服务器,Nginx 会根据配置的负载均衡策略将请求分发到这些服务器上。在轮询负载均衡中,Nginx 会依次将请求分发到每个服务器,确保每个服务器都能均匀地处理请求。

2. server 指令

upstream 块中,server 指令用于定义后端服务器的地址。你可以指定服务器的域名或 IP 地址。例如:

3. proxy_pass 指令

location 块中,proxy_pass 指令用于将请求转发到 upstream 块中定义的后端服务器。例如:

4. 轮询策略

默认情况下,Nginx 使用轮询策略来分发请求。这意味着每个请求会依次分发到不同的后端服务器。例如,第一个请求会发送到 backend1.example.com,第二个请求会发送到 backend2.example.com,第三个请求会发送到 backend3.example.com,然后循环往复。

5. 其他负载均衡策略

虽然轮询是默认的负载均衡策略,但 Nginx 还支持其他负载均衡策略,如加权轮询、IP 哈希、最少连接等。你可以根据实际需求选择合适的策略。

6. 示例配置

以下是一个完整的示例配置,展示了如何在 Nginx 中配置轮询负载均衡:

-- -------------------- ---- -------
---- -
    -------- ------- -
        ------ ---------------------
        ------ ---------------------
        ------ ---------------------
    -

    ------ -
        ------ ---

        -------- - -
            ---------- ---------------
        -
    -
-

在这个配置中,Nginx 会将请求依次分发到 backend1.example.combackend2.example.combackend3.example.com,从而实现轮询负载均衡。

纠错
反馈