如文档对您有帮助,欢迎下载支持,谢谢!
目录
文档目的…………………………………………………………………………………………1 软件工具介绍…………………………………………………………………………………....1 为什么要配置tomcat负载平衡和集群………………………………………………………...1 简单原理介绍……………………………………………………………………………………2 Windows下的具体配置…………………………………………………………………………3 Linux下的具体配置……………………………………………………………………………..8 结论……………………………………………………………………………………………….11 配置问题与解答…………………………………………………………………………………11 详细配置附录…………………………………………………………………………………….11
1.不同类型的workers…………………………………………………………………………12 2.workers.properties列出一个workers的详细配置……………………………………………….13 3.列举不同类型worker的配置实例……………………………………………………………..14 4.tomcat的server.Xml中的各个节点……………………………………………………………15 5.cluster中的各个属性节点……………………………………………………………………..16
Tomcat负载平衡和集群
文档目的:
1.用apache+jk+tomcat实现windows xp 和linux下的web server负载平衡和集群。 2.介绍更多关于apache,jk,tomcat的详细配置
软件工具介绍:
Apache:是前端web服务器,用来接收客户端的请求
Jk:是tomcat Connector,用于把apache接收到的请求分发给tomcat来处理
Tomcat:也是web服务器,但在这里主要充当servlet容器,用来处理jk转发过来的请
求。
为什么要配置Tomcat负载平衡和集群:
负载平衡:负载平衡能处理高并发量的请求 Tomcat集群:Tomcat集群配合负载平衡可以是系统达到高可用性,即任何一台服务器不可用,自动重新连接后,能保持session数据一致,不需要重新输入密码。
简单原理介绍:
1.apatche与tomcat的之间的联系由jk完成,用的是ajp协议。每个tomcat都在监听ajp端口。默认的 AJP Connector 的端口是 8009。
2.配置了集群的tomcat之间通过tcp协议通信复制session,当然要在tomcat应用中的web.xml文件中加入 3.jk把请求分配给某个tomcat服务器遵循着不同的原则,这里我们使用的是负载平衡。在workers.properties中定义了很多worker,如果worker的type把定义成lb,就表示这个 如文档对您有帮助,欢迎下载支持,谢谢! worker是负载平衡worker,他知道怎样提供轮询来分配request。而负载平衡也分很多平衡的方式,采用哪种方式决定于属性worker.balancer.method;下面具体描述不同的负载平衡方式(默认的是R方式)。 worker.balancer.method=Request(简写R):负载平衡worker将根据每个tomcat服务器上处理的request数来寻找最佳的tomcat服务器。这种方式适合绝大数application。 worker.balancer.method=Session(简写S):负载平衡worker根据各个tomcat上session的数量来寻找最佳tomcat,但是负载平衡worker并没有状态,所以不知道session个数,所以把没有session cookie的请求或url中没有encode sessionid的请求当作new session。 worker.balancer.method= Traffic(简写T):负载平衡worker根据jk和tomcat直接的网络状况来找最佳的tomcat服务器。 worker.balancer.method= Busyness(简写B):负载平衡worker根据tomcat的流量选择流量最少的tomcat。 windows下的具体配置: 软件系统环境: 操作系统:windows xp 前端服务器:apache_2[1].0.55-win32-x86-no_ssl.zip 负载平衡器:mod_jk-1.2.27-httpd-2.0.63.so 集群节点:apache-tomcat-5.5.27.zip 配置步骤: 1.下载以上软件 2.安装apache,并把mod_jk.2.0.55解压后拷贝到apache安装目录(这里为E:\\ide\\apache\\Apache2)/modules下面,其实modules下面是apache的各个功能模块,可插拔; 3.安装各个tomcat到不同的主机上 4. 在apache安装目录下conf目录中找到httpd.conf文件,并在末尾添加: include \ 5. 在 httpd.conf 同目录下新建mod_jk.conf文件,内容如下: #加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,\为在workers.propertise里指定的负载分配控制器(在这里可以分配更多的request给controller如果要在运行时管理负载平衡中的各个worker则应该配置status类型的sworker,并把/jkmanager/*类型的请求分配给sworker,访问jkmanager即可访问,配置方法见详细配置附录) JkMount /*.jsp controller 6.在httpd.conf同目录下新建 workers.properties文件,内容如下 worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 如文档对您有帮助,欢迎下载支持,谢谢! worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat worker.controller.sticky_session=1 4.修改tomcat配置文件server.xml 打开tomcat2/conf/server.xml文件 ajp1.3(是用于jk与tomcat之间的通信) Connector的port一定要和workers.properties文件中的一致 http/1.1 Connector(用于浏览器与tomcat之间的通信)的port指定单个访问此tomcat是用的端口号,如果tomcat在不同的主机上可以不修改这个端口号。Server port也一样 5.配置集群 只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session 修改tomcat1, tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是tomcat安装在不同的主机上,是不用改端口的,去掉注释符即可 在每个tomcat节点上的应用(test)中的web.Xml中加入 成功的例子:在不同的客户端发起请求,请求会被平均分配给tomcat 关闭其中一个tomcat1,tomcat1原来处理的请求会被其他tomcat2接收, 如果此前被关闭的tomca1t的session中存在信息, tomcat2中tomcat1的session信息依然存在,表现为登录?tomcat宕机?请求被转到另外一个tomcat,并仍然处于登录状态