介绍nginx负载均衡的几种算法

2021/6/14 7:26:12

本文主要是介绍介绍nginx负载均衡的几种算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

介绍nginx负载均衡的几种算法

1.round-robin(RR)

轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。
当服务器性能不均的情况下,会出现性能差的机器阻塞,而性能好的机器会很空闲这样的情况。

upstream cluster {    
    server 10.1.1.1 ;    
    server 10.1.1.2 ;    
}  

在这里插入图片描述

2.weight-round-robin(WRR)

在轮询方式的基础上加上权重来指定轮询几率,weight和访问比率成正比,weight高的将处理更多的请求,用于后端服务器性能不均的情况。

upstream cluster {    
    server 10.1.1.1 weight=30;     - 性能好的服务器配置高的权重    
    server 10.1.1.2 weight=10;    
}  

在这里插入图片描述

3. IP_hash

根据请求者ip的hash值将请求发送到后台服务器中,可以保证来自同一ip的请求被打到固定的机器上,但是如果客户端都走相同代理的情况下, 会导致某一台服务器连接过多。

upstream cluster {    
    ip_hash;    
    server 10.1.1.1;    
    server 10.1.1.2; 
    server 10.1.1.3;    
}   

在这里插入图片描述
注:ip_hash算法目前是根据IP段前三段进行计算的,前三段都是一样的,将会定向到同一服务器,上面配置的ip只是举例

4.url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个 资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的 浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住 了资源,再此收到请求,就可以从缓存中读取。

upstream cluster {    
    hash $request_uri;     
    server 10.1.1.1;    
    server 10.1.1.2;
    server 10.1.1.3;    
}  

在这里插入图片描述



这篇关于介绍nginx负载均衡的几种算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程