• Nginx配置upstream实现负载均衡


    Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。

    1. 在http节点下,添加upstream节点。

    upstream linuxidc {
          server 10.0.6.108:7080;
          server 10.0.0.85:8980;
    }

    2.将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“http://linuxidc”.

    location / {
                root  html;
                index  index.html index.htm;
                proxy_pass http://linuxidc;
    }

    3  现在负载均衡初步完成了。

      3.1 upstream  按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

      虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡

      适用于图片服务器集群纯静态页面服务器集群。

      

    除此之外,upstream还有其它的分配策略,分别如下:

      3.2 weight(权重) 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。

      ·upstream linuxidc{
            server 10.0.0.77 weight=5;
            server 10.0.0.88 weight=10;
      ·}

     3.3 ip_hash(访问ip) 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

      upstream favresin{
            ip_hash;
            server 10.0.0.10:8080;
            server 10.0.0.11:8080;
      }

      3.4 fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

      upstream favresin{     
            server 10.0.0.10:8080;
            server 10.0.0.11:8080;
            fair;
      }

      3.5 url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

      注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

      upstream resinserver{
            server 10.0.0.10:7777;
            server 10.0.0.11:8888;
            hash $request_uri;
            hash_method crc32;
      }

    -----------------------------------------------  总结 ------------------------------------------------------ 

    upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

      down 表示单前的server暂时不参与负载.

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

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

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

      backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

    upstream bakend{ #定义负载均衡设备的Ip及设备状态
          ip_hash;
          server 10.0.0.11:9090 down;
          server 10.0.0.11:8080 weight=2;
          server 10.0.0.11:6060;
          server 10.0.0.11:7070 backup;
    }

  • 相关阅读:
    matlab中plot画图参数的设置
    TOF相机基本知识
    工业相机接口选择
    工业相机基本知识
    TwinCAT 3中基于UDP协议通讯的C++实现
    投影几何中的无穷远量
    基于CANopen DSP402的运动控制笔记
    C++ new 的用法
    C++中static用法总结
    设计模式——适配器模式(Adapter Pattern)
  • 原文地址:https://www.cnblogs.com/feixiablog/p/7490799.html
Copyright © 2020-2023  润新知