发布于 5年前

Web服务器的负载均衡(Nginx负载均衡为例)

负载均衡分为七层负载均衡和四层负载均衡,本文主要讲解7层。

7层负载均衡:基于URL等应用层信息的负载均衡。

Nginx的proxy是它一个很强大的功能,实现了7层负载均衡。

Nginx的负载均衡

特性

  • 功能欠打,性能卓越,运行稳定
  • 配置简单灵活
  • 能够自动剔除工作不正常的后端服务器
  • 上传文件使用异步模式
  • 支持多种分配策略,可以分配权重,分配方式灵活

策略

内置策略:IP Hash、加权轮询 扩展策略:fair策略、通用hash、一致性hash

  1. 加权轮询策略 首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器。当所有后端机器都down掉时,Nginx会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处在timeout的状态。

  2. IP Hash策略 Nginx内置的另一个负载均衡的策略,流程和轮询很相似,只是其中的算法和具体的策略有些变化。IP Hash算法是一种变相的轮询算法。

  3. fair策略 根据后端服务器的相应时间判断负载情况,从中选出负载最轻的机器进行分流。

  4. 通用Hash、一致性Hash策略 通用hash比较简单,可以以Nginx内置的变量为key进行hash,一致性hash采用了Nginx内置的一致性hash环,支持memcache。

Nginx配置

http {
    upstream cluster {
        server srv1 weight=11;
        server srv2 weight=12;
        server srv3 weight=13;
    }
    server {
        listen 80;
        location /
        {
            proxy_pass http://cluster;
        }
    }
}

cluster 为集群名称; srv1,srv2,srv3 为真实服务器地址;

会按照权重依次访问。

©2020 edoou.com   京ICP备16001874号-3