整合tomcat与apache的一点心得 - 踏月远航||kevin‘s blog

来源:百度文库 编辑:神马文学网 时间:2024/06/03 13:45:28
整合Tomcat与Apache的一点心得
前几天在网上看到了关于web服务器优劣的比较,知道了Tomcat服务器作为基本WEB服务器其能力比起Apache还是有较大差距的,从性能上来说, Tomcat处理jsp页面是比较优秀的,但是对基本的WEB页面处理比较滞后,很多时候并不能满足实际应用的需要,所以我决定将基本WEB服务器及 JSP应用服务器分离,各自处理各自的页面,做到最大程度的页面显示与业务逻辑的分离,同时获得最大的效能利用率。
首先要有以下工具:Tomcat5.0.28(或更新版本)  http://jakarta.apache.org/tomcat/
Apache 2.0.54(或更新版本) http://httpd.apache.org/
Mod_JK  连接器(对应Apache版本)  http://apache.linuxforum.net/dist/jakarta/tomcat-connectors/jk/binaries/win32/
J2SDK 1.4.2(或更高版本)  https://jsecom15a.sun.com/ECom/EComActionServlet;jsessionid=F167D274AB6EC7E635D1EAA270C78102
接着安装这些工具,先安装J2SDK,接着是Tomcat和Apache,最后把下回来的Mod_JK的so文件改名为mod_JK.so(也可以不改,就是名字长点),放入Apache安装目录的modules目录下面。
然后很重要的一步就是环境变量设置,很多初学者出的问题都跟环境变量没有配置好有很大关系。
1.配置J2SDK的环境变量({}内部分按照实际情况更改,下同)
JAVA_HOME={J2SDK_InstallHome};
path={J2SDK_InstallHome}\bin;(一般这个环境变量已存在,那就直接在后面加上就可以了,用‘;’分隔)
CLASSPATH=.;{J2SDK_InstallHome}\lib;{J2SDK_InstallHome}\jre\lib;(一般这些就够了,你还想加,也可以额外加上)
2.配置Tomcat的环境变量
TOMCAT_HOME={TOMCAT_InstallHome};
CLASSPATH={TOMCAT_InstallHome}\common\lib;(直接在后面添加)
后面就进入实质性的配置了。首先进入Apache目录,找到conf目录下面的httpd.conf文件,在最后面添加
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "F:/Application/Tomcat/conf/workers.properties"
JkMount  /servlet/*  ajp13
JkMount  /manager/*  ajp13
JkMount  /manager  ajp13
JkMount  /admin/*  ajp13
JkMount  /admin  ajp13
JkMount  /balancer/*  ajp13
JkMount  /balancer  ajp13
JkMount  /*.jsp  ajp13(有其他目录的项目可以在这里设置别名)
然后找到DirectoryIndex这一行,在这一行添加index.jsp(以空格间隔)
接着(有虚拟主机的也可以在这里设置,详见Apache文档,不在讨论之列)进入Tomcat目录的conf目录,新建一个workers.properties文件,往里面写入如下内容:
# 这现行根据安装目录做修改
workers.tomcat_home=F:\Application\Tomcat
workers.java_home=F:\Application\JavaSDK
ps=\
# worker.list=ajp13
worker.list=ajp12,ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)servlet.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar
worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
worker.inprocess.cmd_line=-config
worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml
worker.inprocess.cmd_line=-home
worker.inprocess.cmd_line=$(workers.tomcat_home)
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)
以上配置依据默认设置,若有个别地方更改需要参照相应文档说明。
这样一来,基本web页就交由Apache处理,而jsp页则自动由Tomcat处理,效率提高不少。