介绍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中常见的四种负载均衡算法:轮询(RR)、权重轮询(WRR)、IP哈希和URL哈希,以帮助理解如何解决服务器性能不均和请求定向问题。
1万+

被折叠的 条评论
为什么被折叠?



