集成原因
tomcat处理支持servlet/jsp以外,也可以当作web服务器来使用,但是其处理静态资源文件(css,js,image)的能力比不上专业的Apache服务器,为什么?tomcat是基于线程的方式来响应客户端请求,这样,无论用户是请求静态文件还是jsp文件,tomcat必须开启线程来响应,因此采用两者结合的方式,让apache响应静态资源,tomcat响应动态请求,各司其职,达到网络分流的目的
步骤
1.下载必须的服务器
Apache HTTP Server 2.2
Tomcat 7.0
jk_mod -这个文件是用来链接http server与tomcat的桥梁,可以在http://download.csdn.net/source/1343482 下载到
2.配置Apache服务器
将下载的的mod_jk-apache-2.2.4.so 放到${APACHE_HOME}/modules目录下
打开${APACHE_HOME}/conf在文件的最后添加一下几行配置
- LoadModule jk_module modules/mod_jk-apache-2.2.4.so
- JkWorkersFile "conf/workers.properties"
- JkMountFile conf/uriworkermap.properties
- JkLogFile "logs/mod_jk.log"
这里配置了与tomcat集成的tomcat的信息(一个apache可以与多个tomcat集成进行负载均衡配置)
- ps="
- worker.list=ajp13
- worker.ajp13.port=8009
- worker.ajp13.host=localhost
- worker.ajp13.type=ajp13
- worker.ajp13.lbfactor=1
这个文件配置url的访问规则,即哪些文件交给apache处理,哪些交给tomcat处理
- /*=ajp13
- /jkstatus=status
- !/*.gif=ajp13
- !/*.jpg=ajp13
- !/*.png=ajp13
- !/*.css=ajp13
- !/*.js=ajp13
- !/*.htm=ajp13
- !/*.html=ajp13
编辑器打开${TOMCAT_HOME}/conf/server.xml文件,找到<Host>元素,将appBase由原来的"webapp"修改为以下
- <Host name="localhost" appBase="C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
- unpackWARs="true" autoDeploy="true">
4.重启tomcat服务器,Apache服务器
找个示例应用复制到${APACHE_HOME}/htdocs目录下
5.访问
http://localhost/jsp-examples/ 结果如下