基本思想:
一台负载均衡服务器负责请求的均衡,群集服务器A和群集服务器B组成一个群集,当某个群集服务器崩溃后,另外一台继续负责应用程序的运行。
环境搭建:
1、WEB服务器:Apache
2、JSP/Servlet容器:Tomcat
3、Connectors连接器:JK
相关配置:
1、httpd.conf的配置:
2、workers.properties文件:
worker.list = controller,tomcat1,tomcat2 #server 列表
#========tomcat1========
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置
worker.tomcat1.host=localhost #tomcat的主机地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置
worker.tomcat2.host=localhost #tomcat的主机地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb #can be "lb, status"
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=1 #粘性session策略,相同session id一直访问同一服务器
#========tomcat1========
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置
worker.tomcat1.host=localhost #tomcat的主机地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置
worker.tomcat2.host=localhost #tomcat的主机地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb #can be "lb, status"
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=1 #粘性session策略,相同session id一直访问同一服务器
tomcat1和tomcat2需要按照以上配置修改各自的server.xml文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
System.out.println(request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/");
%>
</body>
</html>
脚下留心:
当在本机上配置两个tomcat时,最常见的情况下,明明是分别修改了tomcat目录下的server.xml文件,但启动时,还是运用的同一 个配置,究其原因,是因为tomcat5.exe启动的Tomcat程序不一定是tomcat5.exe自身所在的目录,启动的是哪个目录,取决于 tomcat5w.exe中的配置。我们需要运行tomcat5w.exe来修改要启动的tomcat的实际路径。