美文网首页
Nginx之负载均衡不同算法应对不同场景

Nginx之负载均衡不同算法应对不同场景

作者: 隔岸坐看云卷云舒 | 来源:发表于2019-03-25 10:57 被阅读0次

在本博客的Nginx负载均衡里,我提到了weight这样负载均衡的算法,其实Nginx负载均衡的算法还有以下几种有意思的算法:
1: ip_hash

upstream http{
          ip_hash;
           server 192.168.2.101:8080 ;  
           server 192.168.2.102:8080 ;
        }

作用:

根据请求ip的hash值将请求发送到后台服务器中,可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题

针对场景:

seesion是以本地文件存储的形势,没有做session集中管理,在生产项目中我建议以Redis来缓存session

有意思的问题:

顺便提一个有意思的场景,在实际我们用Nginx来阻止高频率的访问中,会出现IP误伤的情况,原因在于Nginx通过ip来限制访问,但比如长城宽带这类宽带,很有可能一个小区出口就那么几个ip,那么就会产生误伤的问题,直接就封禁了一个小区的访问;

2:url_hash

upstream http{
           hash $request_uri;   
           server 192.168.2.101:8080 ;  
           server 192.168.2.102:8080 ;
        }

作用:

根据请求的url进行hash算法决定打入哪台服务器,可以保证同一个Url只打进固定的服务器

针对场景:

当我们后端服务器作为缓存服务器或者文件服务器的时候,一旦缓存住了资源,再此收到请求,就可以从缓存中读取,既减少了带宽,也减少的下载时间,以下画图更方便新人理解


WechatIMG423.jpeg

3: fair

upstream http{
           fair;   
           server 192.168.2.101:8080 ;  
           server 192.168.2.102:8080 ;
        }

作用:

依据后端响应时间的长短来分配

针对场景:

在后端服务器响应的情况下依据响应时间短的优先分配

4: weight

upstream http{
           server 192.168.2.101:8080 weight=10;  
           server 192.168.2.102:8080 weight=10;
        }

作用:

人工配置权重

针对场景:

在后端服务器性能不一的情况下使用,比如有的服务器8核32G,有的服务器是4核8G内存,那么性能较高的服务器就会权重加大

相关文章

网友评论

      本文标题:Nginx之负载均衡不同算法应对不同场景

      本文链接:https://www.haomeiwen.com/subject/jxfvvqtx.html