Nginx可以通过配置文件实现三种常见的负载均衡方式

时间:2024-04-03 09:42:52

Nginx可以通过配置文件实现三种常见的负载均衡方式

1、轮询(默认)

每个请求按时间顺序依次分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

http {
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myapp1;
        }
    }
}

2、加权轮询

可以在server指令中指定权重,权重越高,分配的请求越多。

http {
    upstream myapp2 {
        server srv1.example.com weight=3;
        server srv2.example.com;
        server srv3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myapp2;
        }
    }
}

3、ip_hash

每个请求按访问ip的hash结果分配,使得同一客户端的请求总是定向到同一服务器,除非该服务器不可用。

http {
    upstream myapp3 {
        ip_hash;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myapp3;
        }
    }
}