Nginx配置负载均衡

我们跟着上一篇博文继续往下走,这篇我们来实现ngixn的负载均衡。
负载均衡,相信大家都知道是什么意思,在Nginx中均衡的意思是指在大批量的访问前提下的一种基本均衡,并非绝对的均衡;

对于Web工程的负载均衡,就是将相同的Web应用部署到不同的Web服务器,
当多个请求到来时,由负载均衡服务器负责将请求按照实现设定好的规则向Web服务器进行分发,从而增加系统整体吞吐量。

一、准备工作:

创建两个项目,我们这就简单来,将上一个项目直接复制过来,修改项目端口和页面效果。
端口2000项目效果:

image.png

端口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;  
}

你可能感兴趣的:(Nginx配置负载均衡)