• 关于nginx upstream的几种配置方式


    平时一直依赖硬件来作load blance,最近研究Nginx来做负载设备,记录下upstream的几种配置方式。

    第一种:轮询

    upstream test{
        server 192.168.0.1:3000;
        server 192.168.0.1:3001;
    }

    第二种:权重

    upstream test{
        server 192.168.0.1 weight=2;
        server 192.168.0.2 weight=3;
    }

    这种模式可解决服务器性能不等的情况下轮询比率的调配

    第三种:ip_hash

    upstream test{
        ip_hash;
        server 192.168.0.1;
        server 192.168.0.2;
    }

    这种模式会根据来源IP和后端配置来做hash分配,确保固定IP只访问一个后端

    第四种:fair

    需要安装Upstream Fair Balancer Module

    upstream test{
        server 192.168.0.1;
        server 192.168.0.2;
        fair;
    }

    这种模式会根据后端服务的响应时间来分配,响应时间短的后端优先分配

    第五种:自定义hash

    需要安装Upstream Hash Module

    upstream test{
        server 192.168.0.1;
        server 192.168.0.2;
        hash $request_uri;
    }

    这种模式可以根据给定的字符串进行Hash分配

    具体应用:

    server{
        listen 80;
        server_name .test.com;
        charset utf-8;
       
        location / {
            proxy_pass http://test/;
        }
    }

    此外upstream每个后端的可设置参数为:

    1.down: 表示此台server暂时不参与负载。

    2.weight: 默认为1,weight越大,负载的权重就越大。

    3.max_fails: 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误。

    4.fail_timeout: max_fails次失败后,暂停的时间。

    5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器,应急措施。

  • 相关阅读:
    JavaScript实现接口的三种经典方式
    javascript实现继承3种方式: 原型继承、借用构造函数继承、组合继承,模拟extends方法继承
    JavaScript简单重写构造器的原型
    cocos2d-x中的宏定义CC_PROPERTY
    CCCallFunc CCCallFuncN CCCallFuncND的区别和使用
    action(二)
    action(一)
    CShopDialog类
    cocos2d-x与ISO内存管理(转)
    CGameConfig类
  • 原文地址:https://www.cnblogs.com/tonykan/p/3505620.html
Copyright © 2020-2023  润新知