Nginx负载均衡

Nginx负载均衡实战
本文详细介绍如何通过Nginx实现负载均衡,包括配置Tomcat容器、设置代理目标服务器、应用不同负载均衡策略如轮询、权重分配、ip_hash、最少连接及处理服务器故障与备份。通过实例展示负载均衡效果。

nginx负载均衡

在这里插入图片描述
在这里插入图片描述

负载均衡的实现

宿主机里home目录下新建tomcat1和tomcat2目录,复制容器里conf,webapps到宿主机

docker cp  b3c0449a618e:/usr/local/tomcat/conf  /home/tomcat1/
docker cp  b3c0449a618e:/usr/local/tomcat/webapps  /home/tomcat1/

docker cp  b3c0449a618e:/usr/local/tomcat/conf  /home/tomcat2/
docker cp  b3c0449a618e:/usr/local/tomcat/webapps  /home/tomcat2/

修改共享目录tomcat1、tomcat2中的文件(server.xml、index.jsp),用于查看负载均衡的效果;

docker run -d --name tomcat1 -p 8080:8080 -v /home/tomcat1/conf/:/usr/local/tomcat/conf/  -v /home/tomcat1/webapps/:/usr/local/tomcat/webapps/   aeea3708743f

docker run -d --name tomcat2 -p 9090:9090 -v /home/tomcat2/conf/:/usr/local/tomcat/conf/  -v /home/tomcat2/webapps/:/usr/local/tomcat/webapps/   aeea3708743f

在这里插入图片描述
为了方便观看改变页面效果
tomcat1改变页面效果
在这里插入图片描述
tomcat2改变页面效果
在这里插入图片描述
tomcat2改变端口,测试时需要重启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改nginx.conf指定具体代理的目标服务器

    upstream www.feidao.com{
         server 172.17.0.3:8080 weight=1;
         server 172.17.0.4:9090 weight=2;
    }

在这里插入图片描述

default.conf server.server_name(用户访问URL),server.location指定跳转到目标服务器

location / {
        #root   /usr/share/nginx/html;
        #proxy_pass   http://172.17.0.3:8080;
        proxy_pass   http://www.feidao.com;
        index  index.html index.htm;
    }

在这里插入图片描述
记住要重启nginx

测试结果:访问 http://www.feidao.com/ ,页面会出现8080、9090不同的输出;并且频率会与weight正相关;

负载均衡策略

每个请求轮流分配到不同的后端服务器,如果后端服务器挂掉,则自动被剔除;

假如tomcat1挂掉,也不会影响系统使用
只会实现tomcat2的

参考配置:

upstream www.feidao.com{
         server 172.17.0.3:8080 ;
         server 172.17.0.4:9090 ;
}

weight权重
根据weight权重,请求会根据权重比例分发给不同后端服务器,weight权重越高,分配的比例越大;
实际分配,根据服务器硬件配置高低,来具体分配weight权重,硬件配置高的,weight就配置高点;

参考配置:

upstream www.feidao.com{
	 server 172.17.0.3:8080 weight=1;
	 server 172.17.0.4:9090 weight=2;
}

ip_hash策略
ip_hash策略是根据用户客户端的IP的hash值来分配具体服务器,这样每个访问客户端都会固定访问某一个服务器,这样可以解决session丢失问题,很多网站都采用这种策略来搞负载均衡,主要考虑到session问题;

参考配置:

upstream www.feidao.com{
	 ip_hash;
	 server 172.17.0.3:8080 ;
	 server 172.17.0.4:9090 ;
}

least_conn最少连接
web请求会被分发到连接数最少的服务器上;

参考配置:

upstream www.feidao.com{
	 least_conn;
	 server 172.17.0.3:8080 ;
	 server 172.17.0.4:9090 ;
}

负载均衡备份与宕机

备份 backup配置;
其他非backup机器挂掉后,才会请求backup机器;

参考配置:

upstream www.feidao.com{
	 server 172.17.0.3:8080 ;
	 server 172.17.0.4:9090 backup ;
}

宕机 down配置;
配置down的服务器不参与负载均衡;这样down所标记的服务器可以安心的升级了;

参考配置:

upstream www.feidao.com{
	 server 172.17.0.3:8080 ;
	 server 172.17.0.4:9090 down ;
}

这两个配置很多时候用于运维,维护某个机器的时候用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值