Nginx负载均衡

本文详细介绍了Nginx的负载均衡功能,包括轮询、加权轮询、ip_hash、fair模式和cookiesticky模式,以及它们的应用场景和优缺点。同时涵盖了常见的WEB负载均衡方法,如DNS轮询和四/七层设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、负载均衡

负载均衡是由多台服务器以对称的方式组成一个服务器稽核,每台服务器都具有等价的地位,都可以对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送过来的请求均匀分配到对此结构中的某一台服务器上,而接收到请求的服务器独立的回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此快速获取重要数据,解决大量并发访问的服务器问题。这种集群技术可以用较少的投资获取大型主机的性能。

二、反向代理

反向代理是指以代理服务器来接收InterNet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
通常的代理服务器只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机访问内部网络是,这种代理服务的方式称为反向代理服务。

三、常见的WEB负载均衡方法

1. 用户手工选择方式

在页面中提供不同线路、不同服务器的按钮,让用户自行选择来点击对应的按钮来实现负载均衡

2. DNS轮询方式

DNS负载均衡采用的是简单的轮询算法,不能区分服务器的差异,不能反映服务器当前的运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况

3. 四/七层负载均衡设备

3.1 硬件四/七层负载均衡交换机

3.2 软件四层负载均衡

3.3 软件七层负载均衡

软件七层负载均衡大多基于HTTP反向代理方式,代表产品由Nginx等。

四、Nginx的负载均衡

1. 轮询模式

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

upstream shopb-tomcat7 {
	server 172.21.4.126:2002;
	server 172.21.4.126:2003;
}

2. 加权轮询:Weight模式

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

upstream shopb-tomcat7 {
	server 172.21.4.126:2002 weight=3;
	server 172.21.4.126:2003 weight=2;
}

3. ip hash模式

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

upstream shopb-tomcat7 {
ip_hash;
	server 172.21.4.126:2000;
	server 172.21.4.127:2000;
}

ip_hash是有缺陷的,在一些情况下不可使用

1) nginx部署最前端的服务器

2) nginx还使用了其他方式的负载均衡

3) 不适合CDN网络,不适合前端还有代理的情况

4. Fair模式(第三方插件)

Fair模式比上面的负载均衡算法更加智能,这种算法可以一句页面大小和加载时间长短智能的进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。

Nginx本身是不支持fair的,需要下载Nginx的upstream_fair模块

upstream shopb-tomcat7 {
	server 172.21.4.126:2000;
	server 172.21.4.127:2000;
	fair;
}

5. cookie sticky模式(第三方插件)

使用sticky_cookie_insert启用会话亲缘关系,这会导致来自同一客户端的请求被传递到一组服务器的同一台服务器,与ip_hash的不同是,它是基于cookie来判断的。

upstream shopb-tomcat7 {
	server 172.21.4.126:2000;
	server 172.21.4.126:2001;
	sticky expires=1s domain=172.21.4.126 path=/;
}

语法: expires:设置浏览器中保持cookie的时间

domain:定义cookie的域

path:为cookie定义路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值