【Nginx】6. 负载均衡详解
2021/10/2 7:14:29
本文主要是介绍【Nginx】6. 负载均衡详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
企业在解决高并发问题时,一般有两个方向的处理策略:
- 在硬件上:添加负载均衡器分发大量请求,
- 在软件上:在高并发瓶颈处(数据库、web服务器两处)添加解决方案。
其中web服务器一层最常用的的添加负载方案就是:使用nginx实现负载均衡。当并发量增大到一定程度,可将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。
负载均衡的作用:
- 转发功能:按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。
- 故障移除:通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。
- 恢复添加:如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。
1.Nginx的负载分发策略
Nginx 的 upstream目前支持的分配算法:
1、轮询(默认):1比1轮流处理请求。每个请求按时间顺序逐一分配到不同的应用服务器。(让过来的请求依次访问服务器。)
如果应用服务器down掉,自动剔除,剩下的继续轮询。
2、权重(加权轮询):通过配置权重,指定轮询几率,权重和访问比率成正比,用于服务器性能不均的情况。(根据不同的权重来分发各服务器上的请求数量)
3、iphash算法:对客户端请求的ip进行hash操作,然后根据hash结果,将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
2.Nginx实现负载均衡
配置Nginx的负载均衡与分发策略:通过在upstream参数中,添加 应用服务器IP 和 指定参数 即可实现。
下面的配置是:Nginx代理服务器将到http://vccloud的请求,分别代理分发到 192.168.1.129:80 和 192.168.1.130:80 服务器上。
# 配置被转发的服务器,其中的 ip 推荐使用内网ip,可以提高访问速度 upstream vccloud { server 192.168.1.129:80 weight=1; # weight:权重,数字越大,权越高 server 192.168.1.130:80 weight=2; } # upstream vccloud { # ip_hash; # Nginx会让相同的客户端ip请求相同的服务器 # server 192.168.1.128:80; # 缺省配置就是轮询策略,权重默认为1 # server 192.168.1.129:80; # } server { listen 80; server_name localhost; location / { proxy_pass http://vccloud; # 将代理转发给upstream中配置的服务器去处理。这里的http://后的值必须和upstream后面的值一致 } }
通过以上配置,可以实现,在访问 http://vccloud 时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在代理服务器将请求转发给目的主机时,读取upstream为 vccloud 的地址,读取分发策略,根据配置分发请求到两个服务器上。
3.Nginx其他配置
upstream myServer { # 1、表示单前的server暂时不参与负载。 server 192.168.72.49:9090 down; # 2、3次请求失败后,暂停服务20s。允许请求失败的次数默认为:1,默认的暂停服务时间:10s。 server 192.168.72.49:6060 max_fails=3 fail_timeout=20s; # 3、热备:其它所有的非backup机器down或忙的时候,请求backup机器。所以这台机器压力会最轻。 server 192.168.72.49:7070 backup; }
这篇关于【Nginx】6. 负载均衡详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享
- 2024-08-14nginx 让访问带有/relid的地址返回404 ,例子 /relid-x-0.36-y-131.html-icode9专业技术文章分享
- 2024-08-14nginx 判断地址有/statics/的路径,指向到/home/html/statics/目录-icode9专业技术文章分享