淘淘商城第90讲——nginx实现负载均衡

通过上文的学习,我相信大家都学会了如何使用nginx来实现反向代理,本文我们将学习nginx的负载均衡。

什么是负载均衡?

现在我们通过一个域名(比如www.sina.com.cn或www.sohu.com)来访问我们自己的网站,那www.sina.com.cn或www.sohu.com所对应的网站只有一台服务器吗?这个恐怕不一定吧!最起码www.sina.com.cn或www.sohu.com所对应的网站得做Tomcat服务器集群,做Tomcat服务器集群的目的是什么啊?就是为了把我们这个负载来分配一下,即负载均衡。

也可以这样说,如果一个服务由多台服务器提供,并且需要把负载分配到不同的服务器处理,那么此时就需要负载均衡了。

nginx实现负载均衡

为了学习如何使用nginx来实现负载均衡,首先我们要访问的网站得有多台服务器,比如说我们访问www.sina.com.cn这个网站,www.sina.com.cn这个网站就要有两个Tomcat服务器来提供服务。所以我们还得再提前创建一个Tomcat服务器实例,如下图所示。
在这里插入图片描述
然后将这个Tomcat服务器的端口号给改一下,我们进入tomcat8083的conf目录下修改server.xml文件,依次修改下面这三段配置中的port属性的值,如下所示。

  1. 将port属性的值由8005改为8008
    在这里插入图片描述
  2. 将port属性的值由8080改为8083
    在这里插入图片描述
  3. 将port属性的值由8009改为8012
    在这里插入图片描述

接着我们在nginx配置文件中配置下负载均衡,只须在upstream tomcat8081节点中添加如下一行配置即可。
在这里插入图片描述
不配置任何负载均衡策略的话,默认是轮询策略,就是机会完全均分,这意味着当我们访问www.sina.com.cn网站的时候会在两个Tomcat服务器之间来回访问。当然了,我们也可以配置其它负载均衡策略,根据服务器的实际情况调整服务器权重,权重越高分配的请求越多,权重越低分配的请求越少,但默认都是1,例如:

upstream tomcat8081 {
	server	192.168.25.129:8081; 
	server	192.168.25.129:8083 weight=2;
}

其实,还要其他的负载均衡策略,我们只须了解就行。
在这里插入图片描述
nginx的配置文件修改了之后,要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,使用的命令是./nginx -s reload

为了区分出我们访问的Tomcat服务器到底是属于哪个,可以给tomcat8083这个Tomcat服务器的首页加上一个标志,即修改tomcat8083/webapps/ROOT目录下的index.jsp页面,在原来的信息后面加上---tomcat8083字样,如下图所示。
在这里插入图片描述
最后启动tomcat8083这个Tomcat服务器,在浏览器地址栏中输入www.sina.com.cn并回车,你便会先看到如下图所示的界面。
在这里插入图片描述
这时再刷新一下页面,你便又会看到如下图所示的界面,可以看到现在访问的是tomcat8083这个Tomcat服务器。
在这里插入图片描述
这说明负载均衡起作用了。这里提醒一点的是,如果是自己创建的安装有三个Tomcat服务器的虚拟机的话,那么很有可能遇到轮询只起一次作用的情况(就是先显示tomcat8081这个Tomcat服务器的首页,刷新页面后再显示tomcat8083这个Tomcat服务器的首页,之后一直显示tomcat8083这个Tomcat服务器的首页),这种情况我们不必理会它,这可能是VMware虚拟软件本身的bug,因为我用实际的服务器去测试就完全没有问题。

我还得说一嘴,如果这个时候停掉一个Tomcat服务器的话,我们还能用吗?可以用,挂了一个Tomcat服务器,请求就只能到达另一个Tomcat服务器里面去了,这就是说负载均衡可以容错。挂了一个Tomcat服务器,我们还可以继续用,如果两个都挂了,那么就没着了,肯定就会报错,但是此时nginx负载均衡服务器还是活着的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值