nginx负载均衡算法

nginx负载均衡算法如何实现?负载均衡是 Nginx常用的一个功能,当一台服务器在单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。

为了避免服务器崩溃,大家会通过负载均衡的方式来分担服务器压力。将多台服务器组成一个集群,当用户访问时,先访问到一个转发服务器,再由转发服务器将访问分发到压力更小的服务器。

Nginx负载均衡实现的策略有以下五种:

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。

upstream backserver {
server 192.168.0.12;
server 192.168.0.13;
}

2、权重 weight

weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

upstream backserver {
server 192.168.0.12 weight=2;
server 192.168.0.13 weight=8;
}

权重越高,在被访问的概率越大,如上例,分别是20%,80%。

3、ip_hash( IP绑定)

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题

upstream backserver {
ip_hash;
server 192.168.0.12:88;
server 192.168.0.13:80;
}

4、fair(第三方插件)

必须安装upstream_fair模块。

对比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配。

upstream backserver {
server server1;
server server2;
fair;
}

哪个服务器的响应速度快,就将请求分配到那个服务器上。

5、url_hash(第三方插件)

必须安装Nginx的hash软件包

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。

upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

文章教程来源:头条号老王谈运维

西部数码负载均衡EasySLB服务,可在多台云主机间实现应用程序流量的自动分配。实现故障自动切换,提高业务可用性,并提高资源利用率。业务开通链接 https://www.west.cn/cloudhost/slb.asp

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » nginx负载均衡算法

登录

找回密码

注册