Resin + Apache + Linux 版本组合问题
耗费了N个人1整天的精力,总算解决了一个resin安装的mod_caucho.so诡异陷阱。
Resin3.1.8及以上版本, 配合 Apache2.2.X, 在LinuxAS4 32bit 下,mod_caucho.so是有bug的!导致apache始终不去建立和resin后台的连接(连tcp握手都不去做)。也无法在 xxx.com/caucho-status 看到任何host列表项。
也就是说:在“Apache2.2.X, LinuxAS4 32bit”环境下,resin3.1.8不能使用于编译mod_caucho,必须替换成 resin3.1.6版本才能正常分发请求!
但在Linux AS4 64bit下,resin3.1.8+ 高版本都没问题。
我这里的组合测试结果如下:
1, Linux AS4 32bit, Apache 2.2, Resin 3.1.8+, the result mod_caucho.so compiled is
BAD;
2, Linux AS4 32bit, Apache 2.2, Resin 3.1.6, the result mod_caucho.so compiled is
GOOD;
3, Linux AS4 64bit, Apache 2.2, Resin 3.1.6/3.1.8+, the result mod_caucho.so compiled is
GOOD;
“BAD”主要的现象是:用resin自己的web端口访问应用正常;用Apache端口访问应用全部报“503”错误。但实际上Apache的mod_caucho根本没有向后端resin发出任何tcp连接请求(tcpdump命令可验证);同时,在 xxx.com/caucho-status 上,看到的后端Cluster列表里,没有任何 Host 在位。
在google上搜索到了一些反映类似现象的文章,但都没有解决。只能换版本组合。看来caucho公司想赚钱忽视了健壮性。