nginx 负载均衡轮询方式配置详解
mylove136 · 250浏览 · 发布于2022-03-09
负载均衡(load-balance)就是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验,本文给大家介绍nginx 负载均衡轮询方式配置,感兴趣的朋友一起看看吧
一、概述
Nginx的upstream目前支持的分配算法:
1、round-robin 轮询1:1轮流处理请求(默认)
每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
2、weight 权重(加权轮询)
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
3、ip_hash 哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。应用服务器如果故障需要手工down掉。
参数含义:
down:表示单前的server暂时不参与负载
weight:默认为1,weight越大,负载的权重就越大。
max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间。
backup:其它所有的非backup机器down或者忙的时候,请求backup机器。
二、配置
1、round-robin 轮询(默认)
upstream tg-t4 { server 10.0.0.110:8099; server 10.0.0.110:8098; } server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; } }
访问结果:ABABABABA
2、加权轮询
upstream tg-t4 { server 10.0.0.110:8099 weight=2; server 10.0.0.110:8098 weight=5; } server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; } }
访问结果:ABBABB ABBABB
注:weight影响的访问结果是按最小比例算的,而不是理想状态下:AABBBBB AABBBBB
3、ip_hash
upstream tg-t4 { server 10.0.0.110:8099; server 10.0.0.110:8098; ip_hash; } server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; } }
访问结果:
IP1:AAAAAA
IP2:BBBBBB
4、热备
upstream tg-t4 { server 10.0.0.110:8099; server 10.0.0.110:8098 backup; } server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; } }
访问结果:
访问1:两个服务均正常。AAAAAA
访问2:停用10.0.0.110:8099。BBBBBB
访问3:重启10.0.0.110:8099。AAAAAA
5、加参数优化
upstream tg-t4 { server 10.0.0.110:8099 weight=1 max_fails=2 fail_timeout=2; server 10.0.0.110:8098 weight=3 max_fails=2 fail_timeout=2 backup; } server { listen 8096; server_name www.tg-t4.com; location / { proxy_pass http://tg-t4; } }
访问结果:同4
backup优先级最高,当有了这个参数设定,那么所对应的服务只能作为热备。
配置文件参考:
轮询方式参考:
七层与四层参考:
到此这篇关于nginx 负载均衡轮询方式配置的文章就介绍到这了
相关推荐
将Fedora 29升级到Fedora 30
吴振华 · 697浏览 · 2019-05-14 22:00:02
有效避免数据丢失!Redis持久化方案选择详解
manongba · 902浏览 · 2019-05-15 10:58:03
使用Nginx反向代理到go-fastdfs
iamitnan · 719浏览 · 2019-05-23 13:42:00
利用VLC搭建组播流服务器
追忆似水年华 · 2683浏览 · 2019-06-14 11:27:06
如何设计一个优秀的分布式系统?重要因素、工具、策略都在这里
chenguangming9 · 704浏览 · 2019-06-18 11:00:10
用Bash脚本监控Linux上的内存使用情况
吴振华 · 962浏览 · 2019-06-24 11:27:02
分类专栏
最新发布
最热排行
0评论