两种方式整合apache2.2.9与tomcat6.0.181.使用Apache proxy_ajp模块新版的Apache2.2中,集成了对tomcat支持的ajp——proxy_ajp模块.确认tomcat的配置文件server.xml中,把ajp1.3链接配置打开.即Define a Coyote/JK2 AJP 1.3 Connector on port 8009部分.配置httpd.conf方法先配置文件跟路径,配置监听端口等.下面,就说说配置proxy_ajp了.#加载解析模块(windows下,或linux采用动态加载模式下需配置.我们的linux编译时把下面的模块嵌入到了apache中,所以不用再加载)LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so#禁止使用proxy_ajp代理的目录:ProxyPass /upload/ !#使用proxy_ajp代理;下面的配置,是把所有目录全用代理 #ProxyPass / ajp://192.168.0.100:8009/#ProxyPassReverse / ajp://192.168.0.100:8009/配置到现在,重启一下apache,就可通过apache来访问tomcat的服务了.其他说明1,apache对tomcat的支持历史:apache第2.1版本后,内置了proxy_ajp,而jk2已经没人开发了,jk则支持到apache的2.0.58版本.proxy_ajp配置较简单,但可配置性还不如jk2,主要表现在proxy_ajp目前只支持配置到目录,还不支持对文件名称的pattern模式匹配(即还不能定义到只对jsp文件起作用).2,因为proxy_ajp的配置,还不支持对文件名称的pattern模式匹配,所以你要特别注意:——尽量把jsp和静态文件和图片路径分不同的目录来管理;——对于静态文件和图片路径,如/images,你可用“ProxyPass /images !”来禁止ProxyPass,从而来让apache来直接处理图片的请求.——关于apache的ssi(即shtml,include)与tomcat的集成时,shtml文件不能处于ProxyPass的控制下(即不能在ProxyPass目录),而shtml调用的jsp须在ProxyPass有效控制下.有关ssi设置见笔记:Resin及Tomcat中JSP SSI配置及用法举例2.使用Tomcat mod_jk在配置好JDK TOMCAT环境下(即tomcat单独能够运行JSP)准备好mod_jk 地址:http://tomcat.apache.org/download-connectors.cgi在网站上提供 的JK Source Release zip 中下载后找到workers.properties文件放到tomcat/conf下假设tomcat目录为D:/MyDisk/Tomcat6018vJDK安装目录为D:/MyDisk/JDK在workers.properties中添加或修改workers.tomcat_home=D:/MyDisk/Tomcat6018vworkers.java_home=D:/MyDisk/JDKworker.list=ajp12, ajp13worker.ajp13.port=8009worker.ajp13.host=192.168.0.100worker.ajp13.type=ajp13worker.ajp13.lbfactor=1worker.loadbalancer.type=lbworker.loadbalancer.balance_workers=ajp12, ajp13其他不必修改,单独tomcat配置结束以下是支持负载平衡的多tomcat设置worker.list=ajp12, ajp13worker.tomcat1.port=8009 worker.tomcat1.host=192.168.0.101worker.tomcat1.type=ajp13worker.tomcat1.lbfactor=1worker.tomcat2.port=8009 worker.tomcat2.host=192.168.0.100worker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1#worker.tomcat2.activation=disabledworker.ajp13.type=lbworker.ajp13.balance_workers=tomcat1,tomcat2worker.ajp13.sticky_session=trueworker.ajp13.sticky_session_force=true这个文件中写明了,前端的Apache挂了两个Tomcat服务器,这样可以实现负载均衡的功能,并且响应请求为1:1Apache的http.conf配置1) Listen 80无需改变2) 增加LoadModule jk_module modules/mod_jk-1.2.27-httpd-2.2.10.so行3) DocumentRoot "D:/MyDisk/Tomcat6018v/webapps"属性值写成这样,与Tomcat中的host中的appBase属性值一样4) 增加<IfModule mod_jk.c>JkWorkersFile D:/MyDisk/Tomcat6018v/conf/workers.properties#Tomcat日志文件apache_tomcat/logJkLogFile D:/MyDisk/Tomcat6018v/logs/apache_tomcat.logJkLogLevel info将servlet和jsp交给ajp13处理,扩展名为.svl和jsp,其他文件有apache处理JkMount /*.svl ajp13JkMount /*.jsp ajp13</IfModule>5) 先启动Tomcat,然后再启动Apache,访问http://192.168.0.100/,就可以访问了这只是一个比较粗略的配置,还有很多细节没有考虑,如集群的设置优化,文件的分工处理,多台机器配置等等,以上配置的先决条件是jdk,tomcat,apache基本的配置是正常的.欢迎大家相互交流,提出宝贵意见 http://www.txdnet.cn/ShowEssay-2-1982-Txdnet.jsp

评论