Nginx搭建七层负载均衡

相关概念


Nginx 的Proxy是它一个很强大的功能,实现了基于URL等应用层信息的7层负载均衡;

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

加权轮询策略:首先将请求优先分给高权重都机器,从高往低依次将请求分给下一个高权重都机器。
当所有后端机器都down掉时,Nginx会立即将所有机器都标志位清成初始状态,以避免造成所有机器都处在timeout的状态。

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

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

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

案例


  http{
      ...
      ...

      upstream cxb_cluster{
        #ip_hash; #如果加这个,nginx会自动根据ip进行hash策略

        server 47.98.110.88 weight=20; # 服务器IP地址 weight权重(可选参数,值越大,权重越高)
        server 47.98.110.77 weight=15;
        server 47.98.110.66 weight=25;
      }

      server{
        listen 80;
        ...
        ...
        location / {
          proxy_pass http://cxb_cluster;
        }
      }

  }

总结


Nginx实现的7层负载均衡,其功能强大,性能卓越,运行稳定,配置灵活,能够自动剔除工作不正常的后端服务器;
同时也支持多种分配策略,也可以分配权重,分配方式灵活。

发表评论

电子邮件地址不会被公开。 必填项已用*标注