Nginx反向代理的常用调度算法

upstream 调度算法


1.rr

按客户端请求顺序把客户端的请求逐一分配到不同的后端的服务器,这相当于lvs中的rr算法。如果后端服务器岩机(默认情况下只检测80端口,如果后端报502,404,403,503,还是会直接返给用户),岩机服务器会被自动剔除,使用户访问不受影响,请求会分配给正常的服务器


2.weight(权重)

在轮询算法的基础上加上权重(默认rr+weight),权重轮询和访问成正比,权重越大,转发的请求也就越多。可以根据服务的配置和性能指定权重值大小,可以有效解决新旧服务器性能不均进行请求分配问题


3.ip_hash

每个请求按访问的ip的hash结果分配,当新的请求到达时,先将其客户端的ip通过哈希算法出一个值,在最后的请求客户端,ip的哈希值只要相同,就会被分配至同一台服务器(lvs负载均衡的-p参数,keepalive配置里的persistene_timeout 50),该调度算法可以解决动态网页session共享问题,但是有时会导致请求分配不均,即无法保证1:1的负载均衡,在国内所有的公司都是nat上网,多个pc对应一个外部ip。


    提示:必须是最前端的服务器,后端也必须直接接应用服务器多数情况不能和权重参数一起使用。


4.fair(第三方,no)动态算法

按照后端服务器rs的响应时间来分配请求,响应时间短的优先分配。

比上面两个更加智能的负载均衡算法,此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配,nginx本身不支持fair的,如果需要使用这种调度算法,必须有下载nginx的upstaeam_fair模块


5.least_conn

最少连接数,哪个机器连接数少,就分发。


6.一致性hash


http://tengine.taobao.org/document_cn/http_upstream_consistent_hash_cn.html

worker_processes  1;

http {
    upstream test {
        consistent_hash $request_uri;

        server 127.0.0.1:9001 id=1001 weight=3;
        server 127.0.0.1:9002 id=1002 weight=10;
        server 127.0.0.1:9003 id=1003 weight=20;
    }
}


原创文章,作者:Net20_赤羽,如若转载,请注明出处:http://www.178linux.com/15807

(2)
Net20_赤羽Net20_赤羽
上一篇 2016-06-01 15:39
下一篇 2016-06-01 15:39

相关推荐

  • rsyslog将日志记录于MySQL中,并用loganalyzer进行分析日志

    1、首先来安装lamp环境的支持,与其相关的软件包      # yum -y install rsyslog-mysql mariadb-server php php-mysql php-gd httpd       说明:rsyslog-mysql在数据库中生成一个库文件,但这个文件需…

    Linux干货 2016-10-23
  • N25-第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 查看当前分区情况 [root@han ~]# fdisk -l Disk /dev/sda: 42…

    Linux干货 2017-02-23
  • ls 命令浅谈

           LS命令是Linux中最常用的命令,ls是list的缩写,通过ls命令不仅可以查看Linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。ls命令在日常的Linux操作中用的很多。(这里只是介绍了一部分)       命令格式:ls …

    2017-07-15
  • Linux文件查找之find秘笈

    前言     Linux的基本特点之一是一切皆文件,在系统管理过程中难免会需要查找特定类型的文件,那么问题来了:如何进行有效且准确的查找呢?本文将对Linux系统中的文件查找工具及用法进行详细讲解。 常用工具对比     常用的文件查找工具主要有locate(非实时查找)和find(实时查找)。locate查找依赖于索…

    2015-03-23
  • 马哥教育网络班21期+第2周课程练习

    第二周练习 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp、mv、rm、touch cp:copy,复制    SYNOPSIS        cp [OPTION]… [-T] SOURC…

    Linux干货 2016-07-07
  • 马哥网络教育班第21期+第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@localho…

    Linux干货 2016-08-02