apachetomcat配置指南 下载本文

如文档对您有帮助,欢迎下载支持,谢谢!

目录

文档目的…………………………………………………………………………………………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中加入

表明要复制session 6.运行每个tomcat节点 7.运行apache服务器 9.测试:

成功的例子:在不同的客户端发起请求,请求会被平均分配给tomcat

关闭其中一个tomcat1,tomcat1原来处理的请求会被其他tomcat2接收,

如果此前被关闭的tomca1t的session中存在信息, tomcat2中tomcat1的session信息依然存在,表现为登录?tomcat宕机?请求被转到另外一个tomcat,并仍然处于登录状态