我们跟着上一篇博文继续往下走,这篇我们来实现ngixn的负载均衡。
负载均衡,相信大家都知道是什么意思,在Nginx中均衡的意思是指在大批量的访问前提下的一种基本均衡,并非绝对的均衡;
对于Web工程的负载均衡,就是将相同的Web应用部署到不同的Web服务器,
当多个请求到来时,由负载均衡服务器负责将请求按照实现设定好的规则向Web服务器进行分发,从而增加系统整体吞吐量。
一、准备工作:
创建两个项目,我们这就简单来,将上一个项目直接复制过来,修改项目端口和页面效果。
端口2000项目效果:
端口2001项目效果:
image.png
上一篇博文:https://www.jianshu.com/p/20e8d678385e
将项目打包丢到服务器/opt/app/backend/lx/目录中,启动项目。
二、修改nginx.conf
1、在http标签中加入
upstream www.lx.com {
server 47.105.198.54:2000 weight=2;
server 47.105.198.54:2001 weight=1;
}
server {
listen 1992;
server_name 47.105.198.54;
location / {
proxy_pass http://www.lx.com; #名称要与upstream www.lx.com 相同
}
}
#查看系统已经打开的端口
netstat -talnp
参数说明:
a:表示所有
n:表示不查询dns
t:表示tcp协议
u:表示udp协议
p:表示查询占用的程序
l:表示查询正在监听的程序
image.png
启动nginx
#指定配置文件启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
image.png
刷新两次之后会出现下面那个页面:
image.png为什么是刷新两次呢,因为2000的权重为2,20001为1
server 47.105.198.54:2000 weight=2;
server 47.105.198.54:2001 weight=1;
三、Nginx负载均衡的集中方式介绍
3.1 轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训2000服务和2001服务。
upstream www.lx.com {
server localhost:2000;
server localhost:2001;
}
3.2 权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后2000服务的访问比率会是2001服务的二倍。
upstream www.lx.com {
server localhost:2000 weight=2;
server localhost:2001 weight=1;
}
3.3 iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream www.lx.com {
ip_hash;
server localhost:2000 weight=2;
server localhost:2001 weight=1;
}
3.4 最少连接
将请求分配到连接数最少的服务上。
upstream www.lx.com {
least_conn;
server localhost:2000 weight=2;
server localhost:2001 weight=1;
}
3.5 fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream www.lx.com {
server localhost:2000 weight=2;
server localhost:2001 weight=1;
fair;
}
网友评论