Nginx几种调度算法
Posted hipphappy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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保存,然而当某一后台服务器发生故障时,某些客户端将访问失败;
最少连接数只是考虑了后端服务器的连接数情况,并没有完全考虑服务器的整体性能。
以上是关于Nginx几种调度算法的主要内容,如果未能解决你的问题,请参考以下文章