本文主要是介绍nginx调度算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 轮询-roundrobin
- 一个轮一个的
- 缺点:有的服务器性能好,有的性能差,性能差的机器接受的请求多了肯定不乐意
upstream servers {
server 172.28.28.19:80 ;
server 172.28.28.20:80 ;
}
#权重weight默认是1
2.加权轮询weight-roundrobin
- 也是一个一个轮询的,只不过是比例不一样了,比如2:1、3:2之类的
- weight后的数字不是数值,是比重
upstream servers {
server 172.28.28.19:80 weight=2 max_fails=2 fail_timeout=30;
server 172.28.28.20:80 weight=1 max_fails=1 fail_timeout=20;
}
#max_fails 表示的是proxy最多检查几次(针对坏掉的机器)
#fail_timeout 表示的是proxy在每次检查后,间隔多长事件后再去检查
3.源地址ip_hash检测
- 背景:用户请求登录扣扣,服务器1返回登录界面,用户登录;用户再次请求登录扣扣,服务器2返回登录界面,用户登录
- 实现:用过ip_hash检测,如果是同一个客户端登录,proxy会把请求始终转发到同一服务器上
- 相同客户端访问相同的服务器,ip_hash是根据ip地址的前几位进行检测的
upstream servers {
ip_hash; #此算法是针对整个集群的
server 172.28.28.19:80 weight=2;
server 172.28.28.20:80 max_fails=1 fail_timeout=20;
#server 172.28.28.20:80 down;
}
#down:服务器出现重大故障,已没必要修复,添加down,把该服务器剔除
这篇关于nginx调度算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!