1. Tomcat与其他服务器集成的好处:
1.1 集群功能:将Apache或者IIS作为前端服务器,它们负责把请求均衡的交给后台的多台各司其职的tomcat服务器。如果有硬件的负载均衡系统或者使用了tomcat的集群功能,这种集群就没有必要了。
1.2 Apache和IIS的安全做的比tomcat好,将tomcat放在后端,这样只需要考虑Apache和IIS的安全性即可。
1.3 Apache或者IIS在集成CGI,Perl,PHP方面比较容易,而且有许多tomcat现在还没有实现的功能。并且对socket的错误处理方面也做得比较出色。
1.4 Apache或者IIS处理静态资源,tomcat负责动态页面,这样分工,系统处理请求的速度更快。
2. Jk是当前tomcat与其他服务器集成的首选技术,他们之间使用AJP协议。
3. Tomcat与Apache集成。
3.1 下载安装Apache2.2。注意Apache服务器的默认端口是80,与IIS的端口冲突。80是http的默认端口。http://localhost用于测试Apache是否暗转成功。
3.2 下载暗转JK插件。
在http://tomcat.apache.org/右侧的下载列表中进入Tomcat Connectors 的下载页面,Binary Releases---->win32-----> jk-1.2.28------->mod_jk-1.2.28-httpd-2.2.3.so.下载mod_jk-1.2.28-httpd-2.2.3.so后重命名为mod_jk.so然后放到位于Apache主目录下的module目录。
3.3 设置配置信息。
在Apache的conf目录下的httd.conf文件尾部加入:
#加载JK插件模块。
LoadModele jk_module modules/mod_jk.so
#配置tomcat服务信息
JkWorkerProperty worker.list=worker1
JkWorkerProperty worker.worker1.port=8009
JkWorkerProperty worker.worker1.host=localhost
JkWorkerProperty worker.worker1.type=ajp13
#配置log文件
JkLogFile logs/mod_jk.log
#配置交给tomcat的url映射
JkMount /*.jsp worker1
JkMount /myweb/* worker1
3.4 访问http://localhost/index.jsp 如果出现tomcat欢迎界面,就配置成功。
4. 原理:
JkWorkerProperty worker.worker1.port=8009
JkWorkerProperty worker.worker1.host=localhost
JkWorkerProperty worker.worker1.type=ajp13
kMount /*.jsp worker1
JkMount /myweb/* worker1
这里设置了交给将/*.jsp和/myweb/*交给tomcat的localhost主机的8009端口,使用ajp13协议。因为tomcat中默认配置了
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
所以tomcat会在localhost的8009端口使用AJP协议处理请求。来处理JK的请求。