负载均衡概念
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
软/硬件负载均衡
软件负载均衡
- 软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡
- 优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。
硬件负载均衡
- 硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器
- 专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。
- 硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。
Nginx 负载均衡配置
轮询法
- 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器不关心服务器实际的连接数和当前的系统负载。
upstream w{
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
权重法
- 不同的后端服务器可能机器的配置和负载并不相同,给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载
upstream w{
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
Ip_Hash法
根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号。然后进行负载均衡,同一IP地址的客户端,每次都会映射到同一台后端服务器进行访问(除非服务器不存在了)。
upstream w{
ip_hash;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}