1.1 概念
负载均衡是一种高并发情况下,对服务器集群进行调度,从而让服务器达到最优状态的一种解决方案。
问题1:什么叫高并发?
答:高并发就是单位时间内,访问服务器的次数的总和。单位通常是次/秒。
问题2:为什么要用服务器集群?
答:一台服务器的处理能力是有限的,在高并发请求的情况下,一台服务器处理不了所有的请求,会导致响应速度过慢,甚至服务器宕机。
这种情况下,我们可以通过增加服务器的数量,搭建服务器集群,提高服务器处理能力。
1.2 模型
问题:我们知道每台服务器的地址是不一样的。而我们请求的url只能有一个。那如何将这个url地址映射到多台服务器上呢?
答:使用负载均衡器进行调度。
|
说明:(1)所有的请求,都先发送到负载均衡器。
(2)负载均衡器根据轮询、权重、一致性ip等策略,将请求分发到任意一台真实服务器上。
2 负载均衡实现
思路:(1)配置多台真实服务器。
(2)配置负载均衡器。
2.1 第一部分:配置多个Tomcat集群
2.1.1 集群信息说明
我们这里使用Tomcat配置两台服务器。分别部署到两个不同的虚拟机中。
|
虚拟机地址 |
Tomcat端口 |
Tomat1 |
192.168.23.12 |
8082 |
Tomat2 |
192.168.23.13 |
8082 |
说明:(1)可以将两个Tomcat配到一台虚拟机中。
(2)Tomcat的端口可以任意指定。
(3)如果两个Tomcat是在同一个虚拟机中,注意端口冲突问题。
2.1.2 配置步骤
思路:(1)在虚拟机1上配置Tomcat1
(2)在虚拟机2上配置Tomcat2
2.1.2.1 第一步:配置Tomcat1
(1)上传、解压
|
(2)修改tomcat1端口,注意8005、8009、8080在冲突的情况下,均需要修改
8005--->8105 |
8009--->8109 |
8080--->8082 |
(3)修改tomcat1的主页
目的:是为了看到我们在浏览器中,访问到的是哪一个tomcat。
修好index.jsp
[root@node0719 ~]# vim tomcat1/webapps/ROOT/index.jsp
|
(4)启动tomcat1
[root@node0719 ~]# ./tomcat1/bin/startup.sh |
(5)访问tomcat1
注意:修改防火墙,配置tomcat1的端口,重启防火墙!!!
|
tomcat1配置成功!!!
2.1.2.2 第二步:配置Tomcat2
说明:参考tomcat1配置步骤。
配置成功之后,启动tomcat2.
访问tomcat2主页,地址:http://192.168.23.13:8082
|
2.2 第二部分:配置负载均衡器
说明:我们这里使用tengine做负载均衡器。
2.2.1 Tengine简介
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。
它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
2.2.2 配置步骤
配置步骤说明:(1)安装Tengine
(2)配置负载均衡。
2.2.2.1 第一步:安装Tengine
Tengine只提供了源码,需要先编译后安装。
安装步骤:(1)预编译 ./configure
(2)编译 make
(3)安装 make install
详细安装过程参考电商项目第二天教程。
2.2.2.2 第二步:负载均衡实现
(1)配置真实服务器集群
修改nginx.conf文件,在http节点下配置。
|
(2)配置请求代理
Tengine负载均衡,是基于它的反向代理功能实现的。
反向代理指的是真实服务器接收的请求,来自于代理服务器,而不知道请求到底是哪个客户端发送的。
修改nginx.conf文件,在http节点下配置一个新的server节点。
|
2.2.2.3 第三步:启动Tengine
多次访问tengine服务器,观察结果:
|
|
负载均衡配置成功!!!