nginx 负载均衡策略

1. 轮询

轮询方式是nginx负载均衡的默认策略,根据每个server的权重值来轮流发送请求,例如:

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

这种情况是每个server都使用相同的权重,默认值为1
可以手动设定权重,例如

upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
}

2. 最少连接数

把请求发送给激活连接数最少的那台服务器

设置方式

upstream backend {
least_conn;

server backend1.example.com;
server backend2.example.com;
}

3. 最少延时

把请求发送给连接延时最小的那台服务器
延时的计算方式有两种:
(1)header - 从server接收到第一个byte的时间
(2)last_byte - 从server接收到全部响应的时间

设置方式

upstream backend {
least_time header;

server backend1.example.com;
server backend2.example.com;
}

4. ip hash

根据用户IP计算出一个hash值,并记录下来,以后相同hash值的请求都发送到同一个server,同一个用户的请求始终使用同一台服务器,不用担心跨服务器时的session问题

设置方式

upstream backend {
ip_hash;

server backend1.example.com;
server backend2.example.com;
}

5. 通用hash

对用户指定的key进行hash计算,可以指定文本、变量或者组合

设置方式

upstream backend {
hash $request_uri consistent;

server backend1.example.com;
server backend2.example.com;
}

猜你喜欢

转载自blog.csdn.net/weixin_36562804/article/details/80059387