nginx负载均衡安装与配置(Nginx负载均衡原理及应用实践)
nginx负载均衡安装与配置(Nginx负载均衡原理及应用实践)
2024-06-29 02:33:26  作者:披风挽发  网址:https://m.xinb2b.cn/sport/goj242563.html
逻辑架构图

Nginx负载均衡的逻辑架构图如下图所示:

nginx负载均衡安装与配置(Nginx负载均衡原理及应用实践)(1)

Nginx负载均衡逻辑架构图

负载均衡配置

Nginx负载均衡服务器清单:

服务器名称

IP

说明

Load Balance Server

10.0.0.10

Nginx负载均衡服务器

Web Server 1

10.0.0.20

Web应用服务器

Web Server 2

10.0.0.21

Web应用服务器

负载均衡服务器Nginx.conf配置如下:

worker_process 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream www_pools { # 定义Web服务池server 10.0.0.20:80 weight = 1;server 10.0.0.21:80 weight = 1;}Server { # 定义负载均衡虚拟主机listen 80;server_name www.test.com; # 根据实际域名填写location / {proxy_pass http://www_pools; # 访问www.test.com,请求转发给www_pools中的节点}}}

重启Nginx服务:

nginx -s reload

至此,已经完成了一个简单的负载均衡集群网络的配置,当用户输入网址http://www.test.com/访问负载均衡服务器时,负载均衡会根据设置的负载均衡算法将访问请求分发到Web server 1和Web Server 2两个节点。

负载均衡核心组件upstream 模块模块简介

Nginx负载均衡功能依赖于ngx_http_upstream_module模块,所支持的代理方式包括proxy_pass、fastcgi_pass、memcached_pass。

模块语法

示例1:基本upstream配置

upstream www_pools { # upstream关键词必须有,www_pools为集群组名称,自定义server 10.0.0.20:80 weight=5; # server固定关键词,后接域名或IP,端口不指定默认80server 10.0.0.21:80 weight=10; # weight表示权重,权重越大被分配几率越大}

示例2:较完整的upstream配置

upstream web_pools {server 10.0.0.5;server 10.0.0.6:80 weight=1 max_fails=1 fail_timeout=10s;server 10.0.0.10:80 weight=2 max_fails=2 fail_timeout=20s backup;}

示例3:使用域名及socket的upstream配置

upstream backend {server backend1.example.com weight=5;server backend2.example.com:8080;server unix:/tmp/backend3; # 指定socket文件server backup1.example.com:8080 backup;server backup2.example.com:8080 backup; #backup表示备份服务器,其他指定服务器都不可用时启动}

相关参数

upstream模块内部server标签参数说明

Server标签

参数说明

server 10.0.0.10:80

节点地址可以是IP或者域名,端口不写则默认为80端口

weight=1

服务器权重,默认值为1。权重越大表示接收请求比例越大

max_fails=1

Nginx尝试连接后端主机节点失败的次数

backup

热备配置参数,当前面激活的节点都失败后会自动启动热备节点。注意:当负载调度算法为ip_hash时,状态不能是weight和backup。

fail_timeout=10s

在max_fails定义的失败次数后,距离下次检查的间隔时间,默认是10s。

down

标志着该节点永远不可用,这个参数可配合ip_hash使用。

http_proxy_module模块

proxy_pass指令属于ngx_http_proxy_module模块,此模块可以将请求转发到另一台服务器。 在实际的反向代理工作中,会通过location功能匹配指定的URI,然后把接收到的符合匹配URI的请求通过proxy_pass抛给定义好的upstream节点池。

常见的使用案例:

(1)将匹配URI为name的请求抛给http://127.0.0.1/remote:

location /name/ {proxy_pass http://127.0.0.1/remote/;}

(2)将匹配URI为name的请求应用指定的rewrite规则,然后抛给http://127.0.0.1:

location /name/ {rewrite /name/([^/] ) /users?name=$1 break;proxy_pass http://127.0.0.1;}

负载均衡调度算法

调度算法一般可以分为两类:

静态调度算法: 负载均衡器根据自身设定的规则进行分配,不考虑后端节点服务器的情况。比如rr、wrr、ip_hash都属于静态调度算法。

动态调度算法: 负载均衡器会根据后端服务器当前状况来决定是否分发请求。比如least_conn、fair等都属于动态调度算法。

rr轮询算法

按照客户端请求顺序把客户端请求逐一分配给不同的后端节点,若后端节点宕机,则会被自动从节点池中剔除。

wrr权重轮询算法

在rr轮询算法的基础上加上权重,即权重轮询算法。权重和用户访问量成正比,权重值越大,被转发的请求也就越多。

ip_hash算法

每个请求按照客户端IP的hash结果分配,当新的请求到达时,先讲起客户端的IP通过哈希算法哈希出一个值,相同的哈希值会被分配到同一台节点服务器。

该调度算法可以解决动态网页的session共享问题。

fair算法

根据后端节点服务器的响应时间来分配请求,响应时间短的有限分配。

Nginx本身不支持fair调度算法,如果要使用该算法,必须下载upstream_fair模块。

least_conn算法

根据后端节点的连接数来决定分配情况,哪个节点连接数少就分给哪个节点。

url_hash算法

根据访问URL的hash结果来分配请求,让每个URL定向到同一个后端服务器。

Nginx本身不支持url_hash的,如果需要使用该算法,必须安装Nginx的hash模块软件包。

  • mistine 蜜丝婷真假防晒(Mistine蜜丝婷是哪个国家的)
  • 2024-06-29Mistine蜜丝婷是哪个国家的mistine是泰国化妆品品牌,成立于1988年,距今已经有30多年历史了,是泰国本土的老牌化妆品,深受泰国消费者的喜爱2000年后,蜜丝婷开始进军国内市场,并慢慢火了起来2022年夏季,蜜丝婷防晒乳。
  • 龚贤积墨山水特点(龚贤自藏山水册解密)
  • 2024-06-29龚贤自藏山水册解密名画鉴赏中国传统绘画最常见的装裱形式有立轴、手卷、册页,册页每开最大不过盈尺,六开到二十开不等,一般不会出现奇数开的情况,汇集一册优秀册页统一中透着变化,翻阅起来,总有赏心悦目的感觉,龚贤的这册自藏山。
  • 陈平讲中美贸易谈判(重磅专访林毅夫)
  • 2024-06-29重磅专访林毅夫(东西问)重磅丨专访林毅夫:中美能躲过“修昔底德陷阱”吗?中新社北京4月18日电题:专访林毅夫:中美能躲过“修昔底德陷阱”吗?中新社记者庞无忌2020年,中美经济总量差距进一步缩小,中国GDP占美国的。
  • 许凯在线土味情话太会撩人了(如何俘获万年钢铁直女)
  • 2024-06-29如何俘获万年钢铁直女在饭圈鄙视生态链里,CP粉们通常被看作是位于最底端小可怜而那些在玻璃渣子里卑微找糖的CP粉,更是一个大写的BE比如那些年《延禧攻略》的傅璎夫妇,说好的来世再见,结果1/80世还没有过去,一个就去了《皓。
  • 吃花青素一个月效果(难以置信已转疯)
  • 2024-06-29难以置信已转疯夏季来了,各种脸部的问题也都出现了,尤其是斑点在紫外线下更是原形毕露了这篇文章首先是建议爱美的女士来看,如果对自己都放弃的话还是不要看了经常会有人问我,有没什么吃的东西可以淡化斑点呢?等我分享后又会说。
  • 气质类型哪几种(气质类型特征)
  • 2024-06-29气质类型特征气质是心理活动表现在强度、速度、稳定性和灵活性等方面的心理特征它是人心理活动的动力特征的表现,它依赖于人的生理素质或身体特点通常称之为秉性、脾气、性情,心理学叫气质而在生活中所讲到的“这个人的气质好”。
  • 重点技工学校哪个专业好(盘点技工院校六大好就业的专业)
  • 2024-06-29盘点技工院校六大好就业的专业初中不会读书不等于技术就学不好,学渣也能变学霸,我外婆从小教育我们,一个人可以不聪明,但是不能不勤快,如果家里有小孩初中文化课不好,但是动手勤快的(切记如果动手懒,那就改学别的),也能学好一门技术如果。
  • 8-12岁最美童声(为他们留住美好的童声)
  • 2024-06-29为他们留住美好的童声《让我们荡起双桨》《春天在哪里》《数鸭子》《两只老虎》《小白兔》这些经典儿歌已经陪伴我们很多年了,孩子们需要更多优秀的儿歌来守护他们的童年时光,可惜好的儿歌却越来越少,美好的童年也变得略微有些尴尬众所。
  • 买加碘盐好还是无碘盐好(是碘盐好还是无碘盐好)
  • 2024-06-29是碘盐好还是无碘盐好回想妈妈叫你去超市买盐的时候,看着货架上的一袋袋盐,「碘盐」两个字是不是标配?其实,早在1995年,我国就开始实行了食盐加碘政策2011年,日本福岛核电站泄漏,全民疯抢碘盐;但到了今天,出现了吃无碘盐。
  • 闺密有趣手机壁纸背景图(姑娘下次P图的时候注意一下背景)
  • 2024-06-29姑娘下次P图的时候注意一下背景这么大的磨盘究竟是怎么推动的呢都说了莫要伸手你怎么就不听呢作为过来人我可以明确地告诉你这个时候不要着急这些早晚都是你的我就知道这个团体没有你想象的那么简单这要真的被打中真的不会疼吗煤气罐:我觉得你有点。