zoukankan      html  css  js  c++  java
  • nginx upstream的五种分配方式

    Nginx负载均衡选项upstream用法举例

    1、轮询(weight=1)

    默认选项,当weight不指定时,各服务器weight相同,
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    upstream bakend {
        server 192.168.1.10;
        server 192.168.1.11;
    }

    2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    如果后端服务器down掉,能自动剔除。
    比如以下配置,则1.11服务器的访问量为1.10服务器的两倍。

    upstream bakend {
        server 192.168.1.10 weight=1;
        server 192.168.1.11 weight=2;
    }

    3、ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。
    如果后端服务器down掉,要手工down掉。

    upstream resinserver{
        ip_hash;
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
    }

    4、fair(第三方插件)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream resinserver{
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
        fair;
    }

    5、url_hash(第三方插件)
    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器时比较有效。
    在upstream中加入hash语句,hash_method是使用的hash算法。

    upstream resinserver{
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
        hash $request_uri;
        hash_method crc32;
    }

    设备的状态有:
    1、down 表示单前的server暂时不参与负载
    2、weight 权重,默认为1。 weight越大,负载的权重就越大。
    3、max_fails 允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误
    4、fail_timeout max_fails次失败后,暂停的时间。
    5backup 备用服务器, 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。-

    介绍了这么多,下面来看一个负载均衡实例:

    upstream tel_img_stream {
        #ip_hash;
        server 192.168.11.68:20201;
        server 192.168.11.69:20201 weight=100 down;
        server 192.168.11.70:20201 weight=100;
        server 192.168.11.71:20201 weight=100 backup;
        server 192.168.11.72:20201 weight=100 max_fails=3 fail_timeout=30s;
    }

    说明:

    1)、down 表示当前的server暂时不参与负载
    2)、weight 默认为1.weight越大,负载的权重就越大。
    3)、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
    4)、上例中192.168.11.72:20201 设置最大失败次数为 3,也就是最多进行 3 次尝试,且超时时间为 30秒。max_fails 的默认值为 1,fail_timeout 的默认值是 10s。
    注意,当upstream中只有一个 server 时,max_fails 和 fail_timeout 参数可能不会起作用。
    weightackup 不能和 ip_hash 关键字一起使用。http://www.jbxue.com/article/26828.html

    最后在需要使用负载均衡的server中增加 proxy_pass http://tel_img_stream/;

  • 相关阅读:
    Poj 1742 Coins(多重背包)
    Poj 2350 Above Average(精度控制)
    求二进制数中1的个数
    Poj 1659 Distance on Chessboard(国际象棋的走子规则)
    Poj 2411 Mondriaan's Dream(压缩矩阵DP)
    Poj 2136 Vertical Histogram(打印垂直直方图)
    Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
    poj 2390 Bank Interest(计算本利和)
    Poj 2533 Longest Ordered Subsequence(LIS)
    Poj 1887 Testing the CATCHER(LIS)
  • 原文地址:https://www.cnblogs.com/xingxiz/p/10925912.html
Copyright © 2011-2022 走看看