日期:2014-05-17  浏览次数:20801 次

关于 apache2.2.21 整合 tomcat 的问题
这两天在学习如何将apache 与 tomcat整合 ,这样可以提高应用服务器的运行效率,但是遇到了几个问题不是很理解,所以向大家请教一下。

问题是这样:
  apache2.2以上版本,无需使用jk_mod来集成tomcat,直接使用ajp,很方便。
修改apache配置文件httpd.conf
启用mod_proxy_ajp
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
把这两行前面的#去掉即可
然后在末尾加上
<VirtualHost *:80>
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
ServerName a.hackang.cn
</VirtualHost>
<VirtualHost *:80>
ProxyPass / ajp://127.0.0.1:9009/
ProxyPassReverse / ajp://127.0.0.1:9009/
ServerName b.hackang.cn
</VirtualHost>

配置好后,
在tomcat 创建了个工程web_est,在工程中加了两个文件 index.jsp 和 test.html
apache 和tomcat 两个服务器都 启动后,通过访问http://localhost:80/web_test/index.jsp 和http://localhost:80/web_test/test.html 这个URL是可以运行的,但是当我把tomcat 服务器关闭,只开着apache 服务,然后再访问
就报错了,只是不明白如果apache 与 tomcat 整合后,必须要两个服务器同时都打开吗?



网上通常只简单示例,例如:
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
这样,所有80端口的访问都forward到了tomcat,而我们需要更细致的控制,比如所有静态文件走apache,servlet\jsp等才走tomcat,请能提供更详细的资料,非常感谢!
希望能控制到扩展名类型、地址的构成方式,如下能使apps目录下请求转发tomcat,但/apps/images/logo.gif这个图片也交给tomcat处理了:ProxyPass /apps ajp://127.0.0.1:8009/
ProxyPassReverse /apps ajp://127.0.0.1:8009/
怎么能够更细致的控制?