weight的几种形式Nginx⼏种调度算法
我们经常⽤nginx做反向代理和负载均衡,这⾥汇总⼀下nginx的⼏种调度算法:
1、轮询
按时间顺序逐⼀分配到不同的后端服务器。
upstream lb_demo {
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
2、加权轮询
可在配置的server后⾯加个weight=number,number值越⾼,分配的概率越⼤。
upstream lb_demo {
server 172.16.255.194:9001 weight=10;
server 172.16.255.195:9001 weight=20;
}
3、ip_hash
每个请求按访问IP的hash分配,这样来⾃同⼀IP固定访问⼀个后台服务器。
upstream lb_demo {
ip_hash;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
4、least_hash
最少链接数,哪个机器连接数少就发分发给哪个机器。
upstream lb_demo {
least_conn;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
5、url_hash
按访问的url的hash结果分配请求,是每个url定向到同⼀后端服务器上。
upstream lb_demo {
url_hash;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
6、hash关键值
hash⾃定义的key。
注:调度算法在设置upstream中配置,例如在此⼤括号⾥⾯写⼊ip_hash表⽰使⽤ip_hash的⽅式分配
轮询只是简单实现请求的顺序转发,并没有考虑不同服务器的性能差异;
加权轮询设置了初始时服务器的权重,但是没有考虑运⾏过程中的服务器状态;
IP Hash保证同⼀个客户端请求转发到同⼀个后台服务器实现了session保存,然⽽当某⼀后台服务器发⽣故障时,某些客户端将访问失败;最少连接数只是考虑了后端服务器的连接数情况,并没有完全考虑服务器的整体性能。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。