Nginx学习-4 负载均衡

       负载均衡, Load Balancing ,就是将对请求的处理分摊到多个操作单元上进行。这个均
衡是指在大批量访问前提下的一种基本均衡,并非是绝对的平均。
       对于 Web 工程中的负载均衡,就是将相同的 Web 应用部署到多个不同的 Web 服务器
上,形成多个 Web 应用服务器。当请求到来时,由负载均衡服务器负责将请求按照事先设
定好的比例向 Web 应用服务器进行分发,从而增加系统的整体吞吐量。
负载均衡分类
1 ) 软硬件分类
负载均衡可以通过负载均衡软件实现,也可通过硬件负载均衡器实现
A 、硬件负载均衡
硬件负载均衡器的性能稳定,且有生产厂商作为专业的服务团队。但其成本很高,一台
硬件负载均衡器的价格一般都在十几万到几十万,甚至上百万。知名的负载均衡器有 F5
Array 、深信服、梭子鱼等。
B 、 软件负载均衡
软件负载均衡成本几乎为零,基本都是开源软件。例如, LVS HAProxy Nginx 等。
2 ) 负载均衡工作层分类
负载均衡就其所工作的 OSI (开放系统互联模型)层次,在生产应用层面分为四类:
A 、七层负载均衡 L7
七层负载均衡,即应用层负载均衡,基于 HTTP 协议的负载均衡。其是通过虚拟的 URL
将请求分配到真实的服务器。其一般应用于基于 HTTP 协议的 B/S 架构系统。 Nginx 提供的就
是七层负载均衡功能。
B 、 四层负载均衡 L4
四层负载均衡,即传输层负载均衡,基于 TCP 协议的负载均衡。其是通过虚拟 IP+ 端口
号的形式,将请求分配到真实的服务器。其一般应用于 C/S 架构的内部 ERP 系统。 LVS Linux
Virtual Server ,一种软负载均衡器)和 F5 (一种硬件负载均衡设备)提供的就是四层负载均
衡。当然, Nginx Plus Nginx 的商业授权版)提供了四层负载均衡功能。有些 DNS 提供的也
是四层负载均衡。
C 、 三层负载均衡 L3
三层负载均衡,即网络层负载均衡,基于 IP 协议的负载均衡。其是通过虚拟 IP 的形式,
将请求分配到真实的 IP 。有些 DNS 提供的是三层负载均衡。
D 、二层负载均衡 L2
二层负载均衡,即链路层负载均衡。其是通过虚拟 MAC 地址的形式,将请求分配到真
MAC 地址。生产环境中也可以为 DNS 配置二层负载均衡。
负载均衡的实现
1 ) 总体规划
该机群包含一台 Nginx 服务器,两台 Tomcat 服务器。将前面打过包的 web 工程直接部
署到两台 Tomcat 主机上。然后,在 Nginx 服务器上设置对这两台 Tomcat 主机的负载均衡。
2 ) 配置 Nginx 主机
A 、修改 Nginx 主机的 hosts 文件
B 、 修改 Nginx 配置文件
Nginx 负载均衡策略
Nginx 内置了三种负载均衡策略,另外,其还支持第三方的负载均衡。而每种负载均衡
主机根据负载均衡策略的不同,又可设置很多性能相关的属性
1 ) 轮询
默认的负载均衡策略,其是按照各个主机的权重比例依次进行请求分配的。该策略适用
的场景是:根据主机性能设置不同权重。
对于每台主机,除了像 weight 一样可以设置的属性外,还可以设置如下属性。

fail_ timeout :表示当前主机被 Nginx 认定为停机的最长失联时间,默认为 10 秒。常与
max_fails 联合使用。
max_fails :表示在 fail_timeout 时间内最多允许的失败次数。即 Nginx fail_timeout
间内向当前主机所发出的所有请求,超过了 max_fails 次请求失败,则认为当前主机已
经停机,即使没有到达 fail_timeout 时限。默认值为 1 fail_timeout max_fails 的关系
类似于汽车保养时间间隔与公里数的关系,谁先到达以谁为准。
backup :表示当前服务器为备用服务器。当运行服务器发生停止服务状况时,备用服务
器会自动补上。原来停止服务的服务器又开始服务时,其会自动转为备用机,暂停服务。
down :表示当前服务器永久停机。
2 ip_hash
指定负载均衡器按照基于客户端 IP 的分配方式,该策略确保了相同的客户端的请求一
直发送到相同的服务器,以保证 session 会话,解决了 session 不能跨服务器的问题。

对于该策略需要注意以下几点:
此策略适合有状态服务,比如 session
nginx1.3.1 版本之前,该策略中不能指定 weight 属性。
该策略不能与 backup 同时使用。
当有服务器宕机,必须手动指定 down 属性,否则请求仍是会落到该服务器
3 least_conn
把请求转发给连接数最少的服务器。
Nginx Plux 的四层负载均衡实现
Nginx Plus Nginx 的商业版,其官网是: https://nginx.com
同样是修改 nginx.conf 文件,添加一个 stream 模块,其与 events http 等模块同级。在
其中配置 upstream{} server{} 模块。此时需要注意,通行代理配置在 server{} 中(前面的是
配置在 server 模块的 location 模块中),且不能再是 http:// 开头的了,因为其为四层负载均
衡,负载均衡协议不再是 HTTP 协议了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值