apache与tomcat集成有许多优点,我很早以前配置的tomcat负载均衡就是由apache做前端,由apache请求派,
从而发达到负载均衡的,而apache在稳定性上也是强于tomcat的,他们两个的集成可以弥补tomcat许多先天配置的不足。 例如最近的一个ip段过滤的需求要采用这种集成方案。因为tomcat的ip过滤达不到想要的效果,tomcat的ip过滤只能设置 某个ip,而不能设置ip段,十分的不爽,逼着我把apache集成进来。下面讲一讲集成方案。配置这个我采用的版本是: apache_2.2.11-win32-x86-no_ssl.msi apache-tomcat-6.0.18免安装版.zip mod_jk-1.2.28-httpd-2.2.3.so(这个东东的版本比较苛刻,反正我用mod_jk-1.2.28-httpd-2.0.52.so配置的时候就不好使)
-------------------------------------------------------------------------------------------------------------- 1.将mod_jk-1.2.28-httpd-2.2.3.so复制到E:\Apache2.2\modules(我的apache安装目录),我把他改了下名,方便后面的操作 改名为mod_jk.so。 2.创建 workers.properties 文件,内容如下:
# Define 1 real worker using ajp13 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009
拷贝到E:\Tomcat\conf\jk下,这是我tomcat的安装目录。
3.修改 Tomcat server.xml 文件
找到下面这行内容并在后面添加配置信息: <Engine name="Catalina" defaultHost="localhost"> 配置信息如下:
<!--
You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> --> < Engine name ="Catalina" defaultHost ="localhost" > < Listener className ="org.apache.jk.config.ApacheConfig" workersConfig ="conf/jk/workers.properties" modJk ="E:/Apache2.2/modules/mod_jk.so" jkLog ="logs/mod_jk.log" jkDebug ="info" jkWorker ="worker1" noRoot ="true" /> <!-- For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> -->
4.修改 Apache httpd.conf 文件 在文件最后加上 #To be added at the end of your httpd.conf Include E:/Tomcat/conf/auto/mod_jk.conf
5.重启 Tomcat 并自动生成 mod_jk.conf 我生成的mod_jk.conf为:
########## Auto generated on Wed Apr 29 18:08:28 CST 2009##########
< IfModule !mod_jk.c > LoadModule jk_module "E:/Apache2.2/modules/mod_jk.so" </ IfModule > JkWorkersFile "E:/Tomcat/conf/jk/workers.properties" JkLogFile "E:/Tomcat/logs/mod_jk.log" JkLogLevel info < VirtualHost localhost > ServerName localhost JkMount /manager worker1 JkMount /manager/* worker1 JkMount /docs worker1 JkMount /docs/* worker1 JkMount /examples worker1 JkMount /examples/* worker1 JkMount /host-manager worker1 JkMount /host-manager/* worker1 JkMount /YangFan worker1 JkMount /YangFan/* worker1 </ VirtualHost >
6.启动 Apache 并测试配置,如果版本和我一致的话,应该成功。如果不成功就是路径配置有问题。 都启动好以后,地址栏输入http://localhost/****(tomcat中的项目目录),如果成功进入项目就说明配置成功。 OK,集成完成。 |