Apache与Resin的整合

因为要做压力测试,而内网项目中用的html比较多,所以要先做apache+resin的整合,虽然比较简单,但还是费了些周折,特做此记录。
1. 下载apache源码,编译安装

# ./configure --prefix=/usr/local/apache2 --enable-module=so
# make
# make install

使得apache支持DSO,生成mod_so.c文件
附:DSO即为Dynamic SharedObjects(动态共享目标)的缩写,它是现代Unix派生出来的操作系统都存在着的一种动态连接机制。它提供了一种在运行时将特殊格式的代码,在程序运行需要时,将需要的部分从外存调入内存 执行的方法。Apache在1.3以后的版本后开始支持它。因为Apache早就使用一个模块概念来扩展它的功能并且在内部使用一个基于调度的列表来链接 扩展模块到Apache核心模块.所以, Apache早就注定要使用DSO来在运行时加载它的模块。

2. 下载resin源码,编译安装

# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

前提是JDK环境已经配好
编译完成后将在/usr/local/apache2/modules/下生成mod_caucho.so模块文件
3. 修改resin的配置文件
修改
<web-app id='/' document-directory="/webapps/ROOT"/>

为应用所在目录
下面的可以使用默认配置

<cluster>
<srun server-id="" host="127.0.0.1" port="6802"/>
</cluster>

4. 修改apache的配置文件
修改apache端口,不和resin冲突
Listen 80
修改默认目录,和resin里的配置要一致
DocumentRoot "/usr/local/apache2/htdocs
在文件最后添加如下代码

LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so
ResinConfigServer 127.0.0.1 6802
CauchoStatus yes
<IfModule mod_caucho.c>
<Location /caucho-status>
SetHandler caucho-status
</Location>
</IfModule>
AddHandler caucho-request jsp
<Location /servlet/*>
SetHandler caucho-request
</Location>

注意ResinConfigServer 127.0.0.1 6802
这里的IP要和resin.conf里
<cluster>
<srun server-id="" host="127.0.0.1" port="6802"/>
</cluster>
设置的一致
5. 启动resin,启动apache

BUG:如果找不到resin服务器,apache访问jsp时会显示源码。
本来以为整合后是由apache处理html页,resin处理jsp页,但是因为这个bug,又开始找原因,原来是mod_caucho.so的问题,解析机制为apache加载mod_caucho.so模块后会截获所有http请求,然后连接resin,如果成功则将请求与resin配置信息比较,相符则resin处理,否则apache处理,如果resin这边down了,那么jsp由apache解析,源码就暴露了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值