一、nginx负载均衡介绍
nginx负载均衡是在一个服务器集群环境中,由一台服务器作为调度者,接受到所有客户端请求后,根据每台服务器的负载情况,将请求分配给对应的服务器去处理。
在这个过程中,调度者如何合理分配任务,保证所有服务器将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡的问题了。
二、nginx负载均衡的方式
1、轮训
轮训方式是nginx默认的一种负载均衡的方式,所有的请求都会按照顺序依次分配给每一台服务器,每台服务器的连接数是均分。如果某一台服务器挂掉,能够自动将这台服务器剔除出不参与轮训分配。如下配置轮训10001服务和10002服务。
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
2、权重
权重方式是指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的 分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
3、iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置 (ip_hash可以和weight配合使用)。
upstream dalaoyang-server {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
4、最少连接数
将请求分配到连接数最少的服务上
upstream dalaoyang-server {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
5、fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 需要插件来帮我们实现
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
|