在做项目的时候遇到过这种情况:需要将服务器A收到的请求转发到服务器B去处理,通过上网查阅资料,自己亲自操作后,发现可以实现,配置还很简单
1、首先安装apache(如果已安装,请跳过)
tar -xvf httpd-2.2.29.tar.bz
cd httpd-2.2.29
./configure --with-expat=builtin --prefix=/usr/local/apache2/ --enable-module=so --enable-rule=SHARED-CORE
注:上面的命令里面的"--with-expat=builtin"的目的是能够让32位的mod_wl_22.so在64位的linux上成功运行
make
make install
cd /usr/local/apache2
cd conf/
cp httpd.conf httpd.confbak
chkconfig --list httpd //查看httpd服务是否已存在
chkconfig httpd off //关闭系统自带了httpd的服务,如果存在httpd服务
(
注,如果这时chkconfig命令无法识别,执行以下操作
rpm -aq |grep chkconfig
export PATH=/sbin:$PATH
chkconfig
)
service httpd status //查看自带httpd服务状态
/usr/local/apache2/bin/apachectl -k start //linux启动apache命令
netstat -an | grep :80 //查看linux80端口是否开启
ps -aux | grep httpd //linux下查看apache进程
2、将mod_wl_22.so放到apache的安装目录上面的modules文件夹下面
3、停止apache /usr/local/apache2/bin/apachectl stop
4、便捷apache httpd.conf,加入以下内容:
LoadModule weblogic_module modules/mod_wl_22.so
<IfModule mod_weblogic.c>
WebLogicHost 10.16.8.158
WebLogicPort 8005
MatchExpression *.do
</IfModule>
可以加在以下的命令的下面:
# Example:
# LoadModule foo_module modules/mod_foo.so
参数说明:
WebLogicHost 要转发的目标服务器IP
WebLogicPort 要转发的目标服务器port
MatchExpression 需要转发的请求的类型,这里配置的*.do,表示将所有以.do结尾的请求
5、启动apache /usr/local/apache2/bin/apachectl -k start
6、测试,假如需要由服务器A:172.0.0.1 转发到服务器B:172.0.0.2,访问http://172.0.0.1/index.do,这时查看服务器B的日志,就会发现index.do的请求已经到了服务器B