Nginx教程

nginx调度算法

本文主要是介绍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调度算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!