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
下一篇 2016-06-01

相关推荐

  • LVM逻辑卷扩展与缩小

    逻辑卷扩容:扩展逻辑卷前一定要卸载设备和挂载点的关联 第一步:把逻辑卷lv扩展至300M 第二步:检查硬盘,并重置硬盘容量 第三步:重新挂载,查看挂载状态   缩小逻辑卷:对逻辑卷缩容时,丢失数据的风险更大。在执行操作前一定要提前备份好数据。在进行缩减前先把文件系统卸载掉。 第一步:检查文件 第二步:把逻辑卷lv减小到100M 第三步:重新挂载并查…

    2017-12-17
  • DNS 正反向解析 主从配置

    我的环境是     192.168.1.130    主DNS      192.168.1.112    从DNS DNS 的安装包有bind bind-libs bind-utils 安…

    Linux干货 2016-01-05
  • find、locate、Gnome文件查找工具

    查找命令:         locate:非实时查找         find:实时查找         Gnome:图形化搜索工具 locate: 描述:查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db,一天更新一次更新数据库:updatedb特点:依赖于事先构建的索引。索引的构建是在系统较为空闲时自动进行(周期性任务)…

    Linux干货 2017-11-26
  • 于浩的第一篇随笔

    人生只有两件事,努力工作,享受生活!

    2018-03-26
  • DNS高级应用

        DNS高级应用     1、主从复制      应用场景: (1)、当主DNS服务器压力过大,无法正常处理过多的DNS解析请求时,从DNS服务器可以起到负载均衡的作用。 (2)、当主DNS服务器出现故障时,从DNS服务器可以为其提供冗余备份功能。     实验环…

    Linux干货 2015-06-18
  • keepalive高可用haproxy实现URL资源的动静分离

    keepalive高可用haproxy实现动静分离URL资源 实现要点: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存; (3) 给出拓扑设计; (4) haproxy的设定要求:     (a…

    Linux干货 2016-11-12