采用Apache作为WebLogic Server集群的负载均衡器

强烈建议不要使用WebLogic ClusterServlet作为Proxy进行生产环境的负载均衡,

那个是用来进行集群的功能测试的,Oracle的产品文挡也写得比较清楚。

 

如果采用软件的负载均衡,可以采用Apache,IIS,Netscape,Oracle提供了代理的so文件。

也可以采用Oracle的Traffic Director软件。

如果采用Apache的话,安装方式如下

  1. 下载Apache http://httpd.apache.org/download.cgi
    1. 安装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

     

     

  2. 拷贝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
  3. 修改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 
MatchExpression *.*
</IfModule>

 

 

  • 如果遇到根据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

 

posted @ 2016-03-15 12:04  ericnie  阅读(4862)  评论(0编辑  收藏  举报