zoukankan      html  css  js  c++  java
  • Nginx 负载均衡方案

      

    • 轮询  

    根据Nginx配置文件中的顺序,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

    upstream web { 
        server server1; 
        server server2; 
    } 
    • 最少连接

    Web 请求会被转发到连接数最少的服务器上。least_conn 算法很简单,首选遍历后端集群,比较每个后端的 conns/weight,选取该值最小的后端。如果有多个后端的 conns/weight 值同为最小的,那么对它们采用加权轮询算法。

     upstream web { 
         least_conn; 
         server server1; 
         server server2; 
     } 
    • IP地址哈希

    同一客户端连续的 Web 请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话 Session,可以使用基于 IP 地址哈希的负载均衡方案。这样的话,同一客户端连续的 Web 请求都会被分发到同一服务器进行处理(每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题)。

    upstream web { 
        ip_hash;
        server server1; 
        server server2; 
    } 
    • 权重 (Weighted Load Balancing)

    可以根据服务器的性能状况有选择的分发 web 请求。指定轮询几率,weight 越高、访问比率越大。weight=2,意味着每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。

    基于权重的负载均衡和基于 IP 地址哈希的负载均衡可以组合在一起使用。

    upstream web { 
        server server1 weight=2; 
        server server2; 
    } 
    • fair(第三方)

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

    upstream web {
        server server1;
        server server2;
        fair;
    }
    • url_hash(第三方)

    按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,后端服务器为缓存时比较有效。 hash_method 是使用的 hash 算法

    upstream web {
        server server1:3128;
        server server1:3128;
        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 次失败后,暂停的时间。 
    5.backup: 其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。sorry server 提供非业务功能。

  • 相关阅读:
    G450 Ubuntu14 无线网卡解决
    USB设备不能用。提示Windows 无法启动这个硬件设备。 (代码 19)
    帮你选处理器:CPU T9500-p9500-T9400-T9300-p8700对比分析!
    全球各大运营商黑莓ROM官网下载链接汇总
    查看80端口被占用的方法(IIS、apmserv、system)
    Windows 2003 服务器安全设置-批处理 (附参考链接)
    解决Windows时间同步失败问题!系统时间同步设置!
    WinHTTP Web Proxy Auto-Discovery Service
    关于“未使用GUID分区表”无法安装的解决方案
    DataGridView使用技巧六:冻结列或行
  • 原文地址:https://www.cnblogs.com/starfish29/p/12492500.html
Copyright © 2011-2022 走看看