项目维护中的总结——简单的Apache+Tomcat多服务器配置

集群(其实谈不上,不过是多部署了几个tomcat服务器,用jk/jk2负责负载平衡,而且关于负载平衡我还不大了解,只是我不清楚该怎么称谓,暂且用这个怪吓人的名字)的结构:3台机器,机器A部署了Win2000pro+TomcatjvmRoutetomcat1,以下如同)和apache,机器BC(操作系统都是WinXp)分别各部署了一个Tomcat服务器(tomcat2tomcat3

 

 

 

1、 mod_jk2作为连接器插件的服务器整合

服务器环境:Windows2000 profession + apache_2.0.54 + tomcat_4.1.18

连接器插件:mod_jk2.so  version 2.0.4终结版 apache组织计划在apache2.1/2.2版本中将实现该连接器)

整合过程:

a)           下载apachemod_jk2(在apache的官方网站上即可 ,以下连接仅供参考:

apachehttp://httpd.apache.org/download.cgi

mod_jk2http://apache.justdn.org/jakarta/tomcat-connectors/jk2/binaries/win32/

b)      安装apache_2.0.54,安装目录假设为C: /apache2(以下用APACHE_HOME代表);将下载的连接器压缩包解压后找到mod_jk2.so文件,将其拷贝至APACHE_HOME/modules目录下

c)      配置jk2

修改APACHE_HOME/conf/目录下的httpd.conf文件配置如下:

#在文件中LoadModule部分增加以下代码

LoadModule jk2_module modules/mod_jk2.so  #加载插件

APACHE_HOME/conf/目录下建立workers2.properties文件配置如下:          # Define the communication channel

[channel.socket:10.0.0.33:8009]

info=Ajp13 forwarding over socket  #配置第一个服务器

tomcatId=tomcat1                 #必须和tomcat服务其中server.xml中对Engine元素中#jvmRoute的设置一样,即在server.xml中的设置如   #下:

                                            #<Engine name="Standalone" defaultHost="localhost" #debug="0" jvmRoute="tomcat1">

                                            #这个名字必须唯一,保证集群中的tomcat服务器不

                                            #能同

debug=0

lb_factor=1       #负载平衡因子,数字越大请求被分配的几率越高

 

 

 

# Define the communication channel

[channel.socket:10.0.0.16:8009]

info=Ajp13 forwarding over socket  #配置第二个服务器

tomcatId=tomcat2

debug=0

lb_factor=1

 

 

 

# Define the communication channel

[channel.socket:10.0.0.31:8009]

info=Ajp13 forwarding over socket  #配置第三个服务器

tomcatId=tomcat3

debug=0

lb_factor=1

 

 

 

[status:]

info=Status worker, displays runtime information.

 

 

 

# Map the Tomcat examples webapp to the Web server uri space

#用于显示各个服务器的接收的请求状态(表述可能不准)

[uri:/jkstatus.jsp]

info=Display status information and checks the config file for changes.

group=status:

 

 

 

# Map the Tomcat examples webapp to the Web server uri space

#映射tomcat中的应用即Context,由于我们的应用是放在tomcatwebapps/root  #目录下的,所以 uri设置为 /*,如果为应用 B,且部署在webapps/B,则uri设#置为/B/*

[uri:/*]

info=Map the whole webapp

debug=0

d)    分别启动tomcat服务器和apache服务器(注意:必须保证每台Tomcat服务器都在Engine中设置了正确的jvmRoute,这样负载平衡才有作用),然后就可以试试你的部署了,你可以在apache服务器所在机器上通过http://localhost/jkstatus.jsp 来查看你部署的tomcat的接收请求的情况及负载情况(这里我忽略了各个服务器的端口设置及其他内容的设置)

2、 mod_jk作为连接器插件的服务器整合

服务器环境:Windows2000 profession + apache_2.0.54 + tomcat_4.1.18

连接器插件:mod_jk-1.2.10-apache-2.0.53.so  version 1.2.10

整合过程:

a)       下载apachemod_jk(在apache的官方网站上即可 ,以下连接仅供参考:

apachehttp://httpd.apache.org/download.cgi

mod_jk2http://apache.justdn.org/jakarta/tomcat-connectors/jk/binaries/win32/jk-1.2.10/

b)      安装apache_2.0.54,安装目录假设为C: /apache2(以下用APACHE_HOME代表);将下载的连接器压缩包解压后找到mod_jk-1.2.10-apache-2.0.53.so文件,将其拷贝至APACHE_HOME/modules目录下

c)      配置jk2

修改APACHE_HOME/conf/目录下的httpd.conf文件配置如下:

#在文件中LoadModule部分增加以下代码

LoadModule  jk_module  modules/mod_jk-1.2.10-apache-2.0.53.so   #加载插件

JkWorkersFile  conf/workers.properties                        #指定jk配置文件位  #

JkLogFile  logs/mod_jk-1.2.10-apache-2.0.53.log                         #指定jk日志的位置

JkLogLevel debug                                                                        #日志记录级别

JkMount  /*  tomcat                                                    #/*”表示用于tomca          #处理的应用 ;“tomcat”是出现在#workers.properties文件中worker.list后面 #出现的值

JkMount  /jkstatus.jsp  jkstatus        #用于显示各个服务器的接收的请求状态 

                                                            #(表述可能不准)

APACHE_HOME/conf/目录下建立workers.properties文件配置如下:            workers.tomcat_home=E:/Tomcat 4.1  #mod_jk模块知道Tomcat

workers.java_home=D:/j2sdk1.4.2  #mod_jk模块知道j2sdk

ps=/  #指定文件路径分割符

 

 

 

worker.list=tomcat,jkstatus      

#指定处理web应用的tomcat服务器列表,可以是实 

#际的tomcat服务器,也可以是负责负载平衡的“虚”

#服务器(它是实际服务器组的管理者)

 

 

 

worker.tomcat.method=R      

#指定jk转发请求的方式,T表示根据网络特性选择提 

#供服务的tomcat服务器,R表示根据请求数量和负载因

#子转发,缺省为R(理解可能有误)

 

 

 

worker.tomcat1.port=8009  #工作端口,若没占用则不用修改

worker.tomcat1.host=localhost  #Tomcat服务器的地址

worker.tomcat1.type=ajp13  #类型

worker.tomcat1.lbfactor=1  #负载平衡因数

 

 

 

worker.tomcat2.port=8009  #工作端口,若没占用则不用修改

worker.tomcat2.host=10.0.0.16  #Tomcat服务器的地址

worker.tomcat2.type=ajp13  #类型

worker.tomcat2.lbfactor=2  #负载平衡因数

 

 

 

worker.tomcat3.port=8009  #工作端口,若没占用则不用修改

worker.tomcat3.host=10.0.0.31  #Tomcat服务器的地址

worker.tomcat3.type=ajp13  #类型

worker.tomcat3.lbfactor=2  #负载平衡因数

 

 

 

worker.tomcat.type=lb  #表明这个worker负责负载平衡

worker.tomcat.balance_workers=tomcat1,tomcat2,tomcat3 

 # lb类型的worker管理的实际

#部署的tomcat服务器, 它的 

#名称必须与tomcat服务器中的#Server.xmlEngine元素的

#jvmRoute设置必须相同,并且#balance_workers中出现的这

#些值不能出现在worker.list

 

 

 

worker.jkstatus.type=status  #表明这个worker负责显示集群状态

d)      分别启动tomcat服务器和apache服务器(注意:必须保证每台Tomcat服务器都在Engine中设置了正确的jvmRoute,这样负载平衡才有作用),然后就可以试试你的部署了,你可以在apache服务器所在机器上通过http://localhost/jkstatus.jsp 来查看你部署的tomcat的接收请求的情况及负载情况(这里我忽略了各个服务器的端口设置及其他内容的设置)

 

 

 

 

 

 

参考资料:

Tomcat权威指南 O’REILLY 中国电力出版社

http://jakarta.apache.org            

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/workers.html中可以找到关于jk设置的详细说明,有些可能由于本人的英语水平导致的问题您可以在这里找到正确的解答

阅读更多
个人分类: Web开发
上一篇项目维护中的总结之tomcat死掉的原因
下一篇Java编码规范
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭