采用Apache作为WebLogic Server集群的负载均衡器
强烈建议不要使用WebLogic ClusterServlet作为Proxy进行生产环境的负载均衡,
那个是用来进行集群的功能测试的,Oracle的产品文挡也写得比较清楚。
如果采用软件的负载均衡,可以采用Apache,IIS,Netscape,Oracle提供了代理的so文件。
也可以采用Oracle的Traffic Director软件。
如果采用Apache的话,安装方式如下
- 下载Apache http://httpd.apache.org/download.cgi
- 安装Apache,使用默认端口,如果下载原文件,请通过如下方式构建
因为weblogic 11g支持Apache http 2.0或者2.2,所以请下载2.2.x版本不要下载最新的2.4.x
./configure --prefix=PREFIX --enable-so
Make
Make install
修改conf/httpd.conf,主要是修改监听端口
.PREFIX/bin/apachectl start
- 安装Apache,使用默认端口,如果下载原文件,请通过如下方式构建
- 拷贝WebLogic Server的mod_wl_20.so或者mod_wl_22.so(具体哪个取决于与之匹配的Apache版本,Apache 2.0对应mod_wl_20.so),so文件放在WebLogic Home/server/plugin下,比如E:\oracle\Middleware\wlserver_10.3\server\plugin\win\32, 目标位置在%APACHE_HOME%\modules
- 修改httpd.conf配置文件(%APACHE_HOME%\conf\httpd.conf),让apache加载weblogic提供的For Apache的Plugin
LoadModule weblogic_module /modules/mod_wl_20.so
- 配置Apache指向Weblogic集群
- 让Apache遇到任何请求,都转发给Weblogic
- 注意此语句只支持匹配规则都发到一个集群的多台server,并不支持路径分支匹配。
<IfModule mod_weblogic.c> WebLogicCluster ip1:port1,ip2:port2,ip3:port3,ip4:port4 |
- 如果遇到根据url分发到不同的后端服务器的情况,可以参考下面语句
<Location /app1> SetHandler weblogic-handler WebLogicCluster 192.168.128.1:7002,192.168.128.1:7003 </Location>
<Location /app2> SetHandler weblogic-handler WebLogicCluster 192.168.128.1:7004,192.168.128.1:7005 </Location> |
详情参见
https://docs.oracle.com/cd/E21764_01/web.1111/e16435/apache.htm#PLGWL401