httpd+tomcat

整合起来就是apache的httpd.conf调用了workers.properties文件,然后apache根据这个workers.properties文件用mod_jk.so连接调用TOMCAT来处理应用程序,以我这么菜来说,只能想到这些了。

1、首先安装JDK、APACHE2和TOMCAT5,我觉得在DEBIAN下面装的话还是从源代码编译的好,不然都找不到各个文件放在什么地方。安装就不说了,特别是TOMCAT,可以说简单,直接解压放到/use/local/就完事了,在这里假定这些软件都是用源代码安装的。

2、还要装jakarta-tomcat-connectors-1.2.14,其实就是mod_jk.so,这个我用源码安装:

[user@host]~$./configure--with-apxs=/path/to/your/apache/bin/apxs

[user@host]~$make

[user@host]~$cp./apache-2.0/mod_jk.so/path/to/your/apache/modules/

3、在apache的配置文件最后面加上

#addforjsp

#AddModule

LoadModulejk_modulemodules/mod_jk.so

#Wheretofindworkers.properties

JkWorkersFile/path/to/your/apache/conf/workers.properties

#Wheretoputjklogs

JkLogFile/path/to/your/apache/logs/mod_jk.log

#Setthejkloglevel[debug/error/info]

JkLogLevelinfo

#Selectthelogformat

JkLogStampFormat"[%a%b%d%H:%M:%S%Y]"

#JkOptionsindicatetosendSSLKEYSIZE,

JkOptions+ForwardKeySize+ForwardURICompat-ForwardDirectories

#JkRequestLogFormatsettherequestformat

JkRequestLogFormat"%w%V%T"

#Sendservletforcontext//servlet/applicationtoworker

#namedajp13_worker

JkMount/*.jspajp13_worker

JkMount/servlet/*ajp13_worker

JkMount/application/*ajp13_worker

在这里我是这样理解的:

APACHE首先在启动时载入mod_jk.so模块

LoadModulejk_modulemodules/mod_jk.so

当APACHE收到后缀为JSP的请求时,转交由名字为ajp13_worker的"worker"处理,工作人员?呵呵

JkMount/*.jspajp13_worker

JkMount/servlet/*ajp13_worker

JkMount/application/*ajp13_worker

而这个"工作人员"是在文件名为workers.properties的配置文件中定义的,那么这个文件在什么地方呢,需要给APACHE指出来

JkWorkersFile/path/to/your/apache/conf/workers.properties

上面的代码其它基本上就是这个jakarta-tomcat-connectors的LOG文件的格式呀什么的。需要注意的是对APACHE指出的LOG文件

JkLogFile/path/to/your/apache/logs/mod_jk.log

不存在时,apachectlconfigtest会显示语法正确,当你apachectlstart,APACHE并不会启动也不会在控制台上显示错误信息,只会在erro.log里面显示,所以安装时注意当指定的JkLogFile不存在时,就touch一个吧,接下来我们跳到workers.properties去。

4、workers.properties文件如下。

workers.tomcat_home=/path/to/your/tomcat5

#workers.java_homeshouldpointtoyourJavainstallation.Normally

#youshouldhaveabinandlibdirectoriesbeneathit.

workers.java_home=/usr/lib/j2sdk1.4-sun

#Youshouldconfigureyourenvironmentslash...ps=onNTand/onUNIX

#andmaybesomethingdifferentelsewhere.

ps=/

#Theworkersthatyourpluginsshouldcreateandworkwith

worker.list=ajp13_worker

#Definingaworkernamedajp13_workerandoftypeajp13

#Notethatthenameandthetypedonothavetomatch.

worker.ajp13_worker.port=8009

worker.ajp13_worker.host=localhost

worker.ajp13_worker.type=ajp13

#Specifiestheloadbalancefactorwhenusedwith

#aloadbalancingworker.

#Note:

#---->lbfactormustbe>0

#---->Lowlbfactormeanslessworkdonebytheworker.

worker.ajp13_worker.lbfactor=1

#Theloadbalancer(typelb)workersperformwightedround-robin

#loadbalancingwithstickysessions.

#Note:

#---->Ifaworkerdies,theloadbalancerwillcheckitsstate

#onceinawhile.Untilthenallworkisredirectedtopeer

#workers.

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=ajp13_worker

在这里可以看到前面httpd.conf里面的ajp13_worker就是在这里定义的,这里还指出了TOMCAT和JDK的目录等等,其实,只要COPY完就可以用了。

5、总结

想整合APACHE和TOMCAT,或者说在80端口下使用JSP,那就需要在httpd.conf文件里面加上一些语句,需要一个mod_jk.so,还需要创建一个workers.properties文件。

相关推荐