日期:2014-05-16  浏览次数:20904 次

欲哭无泪,apache与resin整合终于成功
一直以来用的apache+tomcat,今天研究下resin(没用过resin,对此不熟,加大了整合难度)下的集群配置,却怎么也整合不起来,经过多次调试,最终找到原因,是resin的mod_caucho.dll根本没起作用.

整合代码如下:
  在apache的httpd.conf最下面加入如下:
LoadModule caucho_module modules\mod_caucho.dll


NameVirtualHost *:80
<VirtualHost *:80>
ServerName test.hr2.com
DocumentRoot E:\practise_notes\program\java\running_web\hr
DirectoryIndex index.jsp
CustomLog logs/test1.com-access.log common

<IfModule mod_caucho.c>    
#resin的连接地址和端口:注意如果apache和resin在同一台主机,要写成localhost
#不然连接不了resin,在apache的err日志里会有
#Apache/2.2.14 (Unix) Resin/3.1.9 configured -- resuming normal operations出现
#resin的内置代理端口是6800,http访问端口如果改为8080,这里的端口还是要写成6800
#如果是其他主机直接写ip和端口
ResinConfigServer localhost 6800
#下面location是匹配需要经过此代理的url地址, SetHandler   caucho-request为通过resin服务

<Location /caucho-status>
SetHandler caucho-status
</Location>

#匹配动态页面
<LocationMatch (.*?).jsp>
SetHandler caucho-request
</LocationMatch>
</IfModule>
</VirtualHost>


    我访问html能正常,说明apache下访问静态页面是正常的。可是一访问jsp,却怎么也出不来页面,说明请求根本没有往resin那边过不去,而域名:8080却能访问jsp。这样一来,基本可以确认,是apache端转发到resin这一步根本没起作用。冲着这想法,我想求证一下,
我将<IfModule mod_caucho.c>中间加一个!.即<IfModule !mod_caucho.c> ,再次通过域名访问jsp.擦,预期的结果出现了,这个jsp的源码直接显示出来了,或者弹出这个jsp的下载对话框。说明jsp访问到了,但是没在resin端解析,为什么加个!就能访问到jsp这个文件呢?   很显然,mod_caucho.c返回的是false,这说明了什么??说明了apache的resin模块根本没起作用,我的天呐,折腾了这么久它不起作用,然后又检查来检查去,实在是找不到原因了。
    TNND,有点受不了,这会不会是版本兼容问题,于是我疯狂的找resin与apache的版本相关的资料,哎,大家的文章都是你抄我我抄你,抄的时候,把别人的错误都原本不动的抄过来。。。。。我汗!! 
    没折,只能靠自己了,下载了各种各样版本的apache与resin,一个一个的试,巭不负苦心人啊,终于在Apache2.2.11+resin-3.1.2的搭配下,整合成功了。静态的该由apache处理的也乖乖的被apache处理了,jsp文件也乖乖的转发到resin下解析了,终于可以喘口气了。我特在此记下,愿潜在的步我后尘者能在整合前看到此文,少走我折腾过的湾路。