Nginx负载均衡
2021/7/2 7:21:29
本文主要是介绍Nginx负载均衡,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nginx不仅可作为一个Web服务器或反向代理服务器,还可以按照权重、轮询、ip_hash、URL hash等多种方式实现对后端服务器的负载均衡。
1、什么是负载均衡
负载均衡就是将负载分摊到多个操作单元上执行,从而提高服务的可用性和响应速度,带给用户更好的体验。
客户端向反向代理发送请求,接着反向代理根据某种负载机制转发请求至目标服务器(这些服务器都运行着相同的应用),并把获得的内容返回给客户端,期中,代理请求可能根据配置被发往不同的服务器。
2、负载均衡配置
通过Nginx中的upstream指令可以实现负载均衡,在该指令中能够配置负载均衡服务器组。目前负载均衡有4种典型的配置方式,分别为轮询方式、权重方式、ip_hash方法,以及利用第三方模块的方式。
配置方式 | 说明 |
轮询方式 | 负载均衡默认设置方式,每个请求按照时间顺序逐一分配到不同的后端服务器进行处理,如果有服务器宕机,会自动删除 |
权重方式 | 利用weight指令轮询的权重比率,与访问率成正比,用于后端服务器性能不均的情况 |
ip_hash方式 | 每个请求按访问IP的hash结果分配,这样可以使每个访客固定访问一个后端的服务器,可以解决session共享问题 |
第三方模块 | 第三方模块采用fair时,按照每台服务器的响应时间来分配请求,响应时间短的优先分配;若第三方模块采用url_hash时,按照访问url的hash值来分配请求 |
在upstream指定的服务器组中,若每个服务器的权重都设置为1(默认值)时,表示当前的负载均衡是一般轮询方式。
另外,Nginx本身不包含第三方模块的实现方式,如fair或url_hash等,在使用时必须下载对应的upstream_fair模块或安装hash软件包,才可以实现第三方模块提供的负载均衡配置。
2.1 轮询配置
http { upstream myapp1 { server 192.168.1.103:8080; server 192.168.1.104:8080; } ……略 server { listen 80; server_name localhost; ……略 location /webautotest/ { proxy_buffering off; proxy_pass http://myapp1; } } }
2.2 ip_hash方式
ip-hash机制下,客户端ip地址被用作hash key来判断客户端请求应该发送到哪个服务器,这种方法保证了来自相同客户端的请求总是发送到相同服务器
upstream myapp1 { ip_hash; server srv1.example.com; server srv2.example.com; server srv3.example.com; }
2.3 加权轮询负载均衡
upstream myapp1 { server srv1.example.com weight=3; server srv2.example.com; server srv3.example.com; }
这篇关于Nginx负载均衡的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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专业技术文章分享