第一次集成Apache、Tomcat,在网络上差了很多资料,然后按着资料配置
环境说明:
两台window2003服务器
httpd-2.2.15-win32-x86
jakarta-tomcat-5.0.28
mod_jk-1.2.27-httpd-2.2.10.so
在Apache的httpd.conf文件最后面加上include conf/mod_jk.conf
在httpd.conf同目录下新建mod_jk.conf文件,内容如下:
在httpd.conf同目录下新建workers.properties文件,内容如下:
接下来是修改Tomcat
修改server.xml
在一个tomcat上的<Engine name="Catalina" defaultHost="localhost">中加上 jvmRoute="s1"
成为<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">
另外一个tomcat为<Engine name="Catalina" defaultHost="localhost" jvmRoute="s2">
然后去掉 <Cluster 注释,实现资源共享
仅此还不够,要在项目的web.xml中加上<distributable/>
这样Apache Tomcat就实现了负载均衡集成。
以上是按照网络上的资料部署,经测试发现apache唯一做的事就是接收所有请求,再转给tomcat处理,这样就摒弃了apache处理静态页面的能力。
经过研究后将上面的配置按以下修改
修改mod_jk.conf文件,
将JkMount /* controller注释掉,改为
#按照自己的项目情况
JkMount /*.jsp controller
JkMount /*.shtml controller
然后再重启运行项目,发现jsp页面的图片都没有显示,说明静态页面元素apache自己处理了,之所以图片不显示,是因为我们没有给apache指定项目目录
修改httpd.conf文件
将DocumentRoot "D:/Apache2.2/htdocs"改为项目的路径DocumentRoot "D:/cms"
还有<Directory "D:/Apache2.2/htdocs">也同样需要修改
如果不想apache列出文件列表
将Options Indexes FollowSymLinks的Indexes去掉,为Options FollowSymLinks
完毕,再测试,发布页面出现乱码,tomcat的server.xml与apache连接器上加上编码
再测,暂无再出现问题。