Weblogic加Apache的负载均衡以及群集配置

作者 : 开心源码 本文共8003个字,预计阅读时间需要21分钟 发布时间: 2022-05-12 共231人阅读

Weblogic的负载均衡可以通过软件和硬件的方式实现。硬件可以使用F5等设施,软件一般使用apache来实现。下面说明使用apache的具体方法。

Weblogic的负载均衡可以通过软件和硬件的方式实现。硬件可以使用F5等设施,软件一般使用apache来实现。下面说明使用apache的具体方法。

1. 环境准备

Apache 2.2 http://httpd.apache.org/download.cgi

Weblogic 9.2

2. 配置weblogic

2.3 配置weblogic.xml文件

为了支持session复制,为应用程序新建weblogic.xml文件,放置到ear文件的meta-inf目录下。内容为:

<?xml version=”1.0″ encoding=”GBK”?>

replicated

true

3. 配置apache

从{weblogic_home}/server/plugin/win/32 目录,复制mod_wl_22.so 到 {apache_home}/modules目录下。

修改httpd.conf文件,添加如下内容:

LoadModule weblogic_module modules/mod_wl_22.so

WeblogicCluster 192.168.10.101:7010,192.168.10.102:7011

MatchExpression *

WLLogFile “D:/Program Files/Apache Software Foundation/Apache2.2/logs/wlproxy.log”

Debug On

DebugConfigInfo On

KeepAliveEnabled On

KeepAliveSecs 15

4. 部署应用程序

启动machine2上面的admin server,进入控制台,部署应用程序,注意选择target时,要指定为cluster_test。

5. 启动weblogic

5.1 启动machine2上面的admin server

在machine2机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain/bin/startWeblogic.cmd

5.2 启动machine2上面的server1

在machine2机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain /bin/startManagedWeblogic.cmd server1 192.168.10.101:7001

5.3 启动machine3上面的server2

在machine3机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain /bin/startManagedWeblogic.cmd server2 192.168.10.101:7001

6. 启动apache服务器

7. 相关束缚条件

7.1 所有Managed server的绑定地址必需是静态地址,不能是动态地址

7.2 假如需要在wan上面访问,admin server所在的机器必需要有对外的IP地址

8. 问题诊断方法

MulticastMonitor 工具

监视群内广播数据,一般用来检查群内通信能否正常。使用方法如下:

1. 运行 {weblogic_home}/user_projects/domains/{domain_name}/bin/setdomain.cmd 设置环境变量,如classpath等,

2. 运行 java weblogic.cluster.MulticastMonitor {群广播地址} {广播端口} {域名称} {集群名称}

3. 运行后可以看到群内各个managed server之间的广播数据,据此可以判断每个服务器的通信能否正常。

MulticastTest 工具

在各个managed server之间发送数据,一般用来检查群内各个server之间通信能否正常。此命令需要在每个server所在的机器上运行。使用方法如下:

1. 运行 {weblogic_home}/user_projects/domains/{domain_name}/bin/setdomain.cmd 设置环境变量,如classpath等,

2. 运行 java utils.MulticastTest -n {消息名称} -a {广播地址} -p {广播端口} (这些参数不能与已有的重复)

每个server上运行的消息名称不能相同。

广播地址不能是已经配置了的群广播地址,即:需要另外使用一个用来测试用的广播地址。

WebLogicHost

(假如代理商到单个WebLogic服务器,那么应该设置该参数)

none

HTTP请求被递交到该WebLogic Server主机(或者者是定义在WebLogic Server中运行的相似于Web server的虚拟主机名)假如使用集群,那么应该使用WebLogicCluster参数而不是WebLogicHost参数。

WebLogicPort

(假如代理商到单个WebLogic服务器,那么应该设置该参数)

none

WebLogic服务器监听WebLogic连接请求的端口。(假如在插件与WebLogic服务器之间使用SSL,那么应该把该参数设置为SSL监听端口(见8-4页的”配置监听端口”)并将SecureProxy参数设置为ON)。

假如使用WebLogic集群,那么应该设置WebLogicCluster参数而不是WebLogicPort参数。

WebLogicCluster

(假如代理商到一个WebLogic服务器集群,那么必需设置该参数)

none

集群中的WebLogic服务器列表,用于负载平衡目的。该列表由逗号分隔开的host:port组成。例如:

WebLogicCluster myweblogic.com:7001,

yourweblogic.com:7001,theirweblogic.com:7001

假如插件与WebLogic服务器之间使用SSL协议,那么将端口号设置为SSL监听端口(见8-3页的”配置监听端口”)并将SecureProxy参数设置为ON。

应该用该参数取代WebLogicHost与WebLogicPort参数,WebLogic Server首先查找WebLogicCluster参数,假如没有找到该参数,它将寻觅并使用WebLogicHost与WebLogicPort参数。

插件对所有可用的集群成员进行轮询。该参数所指定的集群列表是服务器与插件共同维护的动态列表的初始值。WebLogic服务器与插件将根据新加入的、失败的以及恢复的集群成员的情况动态地升级集群列表。

假如将 DynamicServerList参数设置为OFF(只适用于Microsoft Internet Information Server),那么集群列表的动态升级被禁用。插件将请求导向集群中最初创立cookie的那个服务器上(请求包含cookie、URL- encoded会话或者存于POST数据中的会话信息)。

PathTrim

none

在请求被转交到WebLogic服务器之前,被插件从原始URL中裁剪掉的字符串。例如:假如原始URL为

http://myWeb.server.com /weblogic/foo被传递到插件进行解析且PathTrim参数被设置为/weblogic,那么传递到WebLogic服务器的URL变 为:http://myweblogic.server.com:7001/foo

PathPrepend

null

加在原始URL前的前缀字符串,该动作发生在PathTrim被裁剪后,请求转向WebLogic服务器之前。

ConnectTimeoutSecs

10

插件进行WebLogic服务器主机连接尝试的时间上限。该值应该大于 ConnectRetrySecs参数。假如超过ConnectTimeoutSecs还没能连接成功,即便进行了适当次数的连接重试(见 ConnectRetrySecs参数),也将把HTTP 503/Service Unavailable响应返回给用户端。

可以使用ErrorPage参数定制错误响应。

ConnectRetrySecs

2

该参数以秒为单位,设置了两次WebLogic Server主机(或者集群中的所有服务器)连接尝试之间,插件的休眠时间。该参数的值应该小于ConnectTimeoutSecs。插件在返回HTTP 503/Service Unavailable响应之前,它将进行的连接次数为ConnectTimeoutSecs除以ConnectRetrySecs所得的值。

假如不希望重试连接,那么应该将ConnectRetrySecs值应该与ConnectTimeoutSecs相等。不过,插件会至少进行两次连接尝试。

可以用ErrorPage参数定制错误响应。

Debug

OFF

设置调试操作时的日志类型。在生产系统中不建议你开启这些调试选项。

在UNIX系统中,调试信息被写到 /tmp/wlproxy.log文件中;在Windows NT系统,调试信息被写到c:/temp/wlproxy.log文件中,通过WLLogFile参数,你可以使用其余路径下的其余文件覆盖文件名、路径 参数。你可以设置以下日志选项(其中HFC, HTW, HFW, HTC可以联合使用,它们之间用逗号隔开,如”HFC, HTW”);

ON

插件只记录报告性消息与错误消息

OFF

不记录调试信息

HFC

记录来自用户端消息、报告性消息以及错误消息的消息头。

HTW

记录从weblogic发送来的消息头,报告性消息与错误消息

HFW

记录来自weblogic服务器消息的消息头,报告性消息与错误消息

HTC

记录发送到用户端消息的消息头,报告性消息与错误消息

ALL

记录发送到用户端以及用户端发送的消息的头,发送到WebLogic服务器以及WebLogic服务器发送的消息头,报告性消息,错误消息

WLLogFile

参见Debug参数

指明当Debug参数为ON时,产生日志文件的路径和文件名,在设置该参数前,必需创立相应目录。

DebugConfigInfo

OFF

启用特殊查询参数”_WebLogicBridgeConfig”。该参数可以被用来理解插件的配置参数的细节。

例如,假如把 DebugConfigInfo设置为ON,那么”_WebLogicBridgeConfig”被启用。发送一个包含查询字符 串?_WebLogicBridgeConfig的请求,插件将收集配置信息有运行时的统计信息并将这些信息返回给浏览器。在解决该请求时,插件没有连接 到WebLogic服务器。

该参数只应严格用于调试目的。消息的输出格式随版本的变化而不同。为了安全起见,在生产环境中应该将该参数设置为OFF。

StatPath(Microsoft Internet Information Server 插件没有这个参数。)

false

假如把该参数设置为真,插件在把请求传递到WebLogic服务器之前检查被转换的路径是 否存在或者及其访问权限(”Proxy-Path-Translated”)。假如文件不存在,将把HTTP 404 File Not Found响应返回给用户端。假如文件存在,但它的权限不是world-readable,那么将返回HTTP 403/Forbidden响应。这两种情况下Web服务器解决这些响应的缺省机制是执行响应的体内容。假如WebLogic服务器的Web应用与Web 服务器具备相同的文档根,那么该选项非常有用。

可以使用ErrorPage参数定制错误响应。

ErrorPage

none

可以制作自己的错误响应页面,在Web服务器不能将请求代理商到WebLogic服务器时使用。

设置该参数的方式有两种:

  • 作为相对URI(文件名)。插件自动将返回错误的Web应用的上下文路径加到URI中。对错误页面的请求能否回代理商到WebLogic服务器取决于你对代理商的配置(是MIME类型式代理商还是路径式代理商)。
  • 作为绝对URI(建议)。使用错误页面的绝对路径能够使请求总是被代理商到WebLogic服务器中的正确资源上。例如: http://host:port/myWebApp/ErrorPage.html

HungServerRecoverSecs

300

定义了插件等待WebLogic服务器响应请求的时间。在等待了 HungServerRecoverSecs时间后,插件还没有得到服务器的响应,那么它将宣布该服务器已经死机并失败转移到下一个服务器。应该把该参数 设置为一个较大的值。假如所设置的值小于servlets进行解决的时间,那么会得到意想不到的后果。

最小值为:10

最大值为:600

Idempotent

ON

假如该参数设置为ON,那么当服务器在指定的HungServerRecoverSecs 时间没有响应,那么插件将进行容错解决。假如设置为OFF,插件将不进行失败转移。假如所使用的是Netscape Enterprise Server插件或者Apache HTTP Server插件,不同的URL与MIME类型可以有不同的Idempotent参数设置。

CookieName

JSESSIO

NID

假如改变了WebLogic服务器Web应用中的WebLogic服务器会话cookie 的名字,那么相应地应该将插件的CookieName参数设置为相同的值。WebLogic会话cookie的名字在特定于WebLogic的分发形容符 的元素中定义

DefaultFileName

none

假如URI为”/”,插件将执行以下步骤:

1.裁剪掉PathTrim参数所指定的路径

2.在后面加上DefaultFileName所指定的文件名

3.在前面加上 PathPrepend参数所指定的值这样解决可以防止WebLogic服务器的重定向。将DefaultFileName设置为代理商WebLogic服 务器的Web应用的缺省欢迎页面。例如,假如DefaultFileName被设置为welcome.html,那么下面这个HTTP请求:

http://somehost/weblogic

变为:http://somehost/weblogic/welcome.html。只有当所有被重定向的web应用指定相同的欢迎页面, 该参数才起作用。可以参见以下页面的”Configuring Welcome Pages”部分:

http://e-docs.bea.com/wls/docs61/webapp/components

对于Apache客户,所使用的是Stronghold或者Raven的版本,在Location块中定义参数,而非IfModule块中

MaxPostSize

-1

POST数据的允许的最大长度。假如内容的长度超过MaxPostSize,插件将返回一个错误消息。假如设置为-1,将不检查POST数据的长度。设置该参数可以防止通过发送大量数据使服务器过载的”拒绝服务攻击”。

MatchExpression

(该参数只适用于Apache HTTP服务器)

none

假如采用MIME类型方式代理商,应该在一个IfModule块中使用MatchExpression参数设置文件名模式。

下面的一个例子说明了使用MIME类型方式的代理商:

MatchExpression *.jsp

WebLogicHost=myHost|paramName=value

下面的一个例子说明了使用路径方式的代理商:

MatchExpression /weblogicWebLogicHost=myHost|paramName=value

FileCaching

ON

当该参数设置为ON,假如请求中的POST数据大于2084个字节,那么POST数据保存 在硬盘的一个临时文件中,而后以8192字节为单位传给WebLogic服务器。但将FileCaching设置为ON,可能引起的问题是浏览器上将显示 一个进展条表明正在进行下载。即便文件还在传输,浏览器也会显示下在已经完成。

假如该参数设置为OFF,那么当 POST数据大于2084字节时,数据保存在内存中并以8192字节为单位发送到WebLogic服务器。将参数设置为OFF可能会引起问题。由于插件不 能进行失败转移,因而假如请求被解决时WebLogic 服务器宕机了,那么数据将被丢失。

WlForwardPath

(只有Microsoft IIS才需要定义该单数)

null

假如WLForwardPath设置为”/”,那么所有请求都被代理商到WebLogic服 务器。假如只想代理商以特定字符串开头的请求,那么应该将WlForwardPath参数设置为这个字符串。例如,将WlForwardPath设置为 /webogic,那么所有以/weblogic开始的请求都将被代理商到WebLogic服务器。

假如采用路径方式的代理商,那么必需设置该参数。可以为该参数设置多个字符串,字符串之间用逗号隔开,例如:WlForwardPath=/weblogic,/bea。

KeepAliveSecs

(不要为Apache HTTP服务器版本1.3.x定义该参数)

30

该参数定义了隔多长时间后,插件与WebLogic服务器之间的非活动连接将被关闭。要使该参数生效,KeepAliveEnabled参数应该设置为true。

该参数的值应该小于或者等于在管理控制台的Server/HTTP标签页中Duration字段的值,或者者是服务器Mbean中的keepAliveSecs属性的值。

KeepAliveEnabled

True

启用插件与WebLogic服务器之间的连接池。

QueryFromRequest

(只适用于Apache HTTP服务器)

OFF

假如该参数设置为ON,那么Apache插件使用(request_rec *)r->the request将查询字符串传递到WebLogic服务器。(详细信息,请参见Apache文档。)这种行为在以下场合非常有用:

当Netscape 版本4.x浏览器发出的请求的查询字符串中包含空格。

假如你在HP上使用Raven Apache 1.5.2

假如该参数设置为OFF,那么Apache插件使用(request_rec *)r->args将查询字符串传递到WebLogic服务器。

MaxSkips

(在Apache 1.3 中不可用)

10

只有当DynamicServerList设置为OFF时,该参数的设置才生效。假如 WebLogicCluster参数所设置的列表或者由WebLogic服务器返回的动态集群列表中的WebLogic服务器失败了,那么该失败的服务器被 标记为”坏的”,同时插件将连接到列表中的下一个服务器中。

MaxSkip设置了插件重试”坏”服务器的次数。每当插件接收到一个唯一请求(即不包含cookie的请求)时,它会连接到列表中的一个新服务器上

DynamicServerList

(只能在Microsfot IIS中设置该参数)

ON

假如该参数设置为OFF,在对由插件所代理商的请求进行负载平衡时,不使用动态集群列表,而是使用WebLogicCluster参数指定的静态列表。通常情况下,该参数应该设置为ON。将该参数设置为ON,可能会产生以下影响:

  • 假如静态列表中的一或者多个服务器失败了,那么插件可能会由于重试连接到失效服务器而导致性能的降低。
  • 当你在集群中新添加了一个服务器,假如不重新定义这个参数,插件就不能将请求代理商到这个新服务器上。WebLogic服务器会自动地将新服务器加到动态服务器列表,从而使新服务器成为集群的一部分。
Weblogic加Apache的负载均衡以及群集配置

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Weblogic加Apache的负载均衡以及群集配置

发表回复