第 17 章
BEA WebLogic Server
在 BEA 群集上设置 Portal Server
本部分简单介绍并举例说明 Sun Java System Portal Server 软件在 BEA WebLogic Server 群集上的使用方法。
|
注
|
- 一个群集的所有机器必须处于同一个子网中。所有参与群集的 BEA WebLogic Server 实例必须在同一个端口上侦听。为成功使用会话故障切换功能运行 Portal Server 软件,您需要运行 Portal Server 软件的 3 个受管理服务器。
- 如果计划使用群集,请不要运行 perftune。
- 需要用于代理的群集 servlet 是 weblogic.servlet.proxy.HttpClusterServlet。
- Resonate 3.3 无法实现 BEA WebLogic 群集的负载平衡。
|
|
例如,有 5 台机器。所有机器必须处于同一个子网中。其中一台装有 Identity Server 和 Directory Server (IS)。另一台是 BEA WebLogic 管理服务器 (AS)。还有 3 台群集机器(CS1、CS2 和 CS3)。群集需要具有负载平衡功能。在本例中,代理位于管理服务器上。
将 Identity Server 和 Directory Server 安装到 IS 机器上。使用默认安装方式,将 BEA WebLogic Server 安装到所有其他 4 台机器上。检查所有服务器是否工作正常。在含有 BEA WebLogic Server 的管理服务器 (AS) 机器上,按照 BEA WebLogic 说明,创建由具有监听端口 80 的管理服务器组成的新域 (NEWDOMAIN)。该实例的名称应为 PORTALSERVER。
使用下列详细信息在 AS 机器上安装 Sun Java System Portal Server 软件。
- 服务器端口:80
- 服务器域:NEWDOMAIN
- 服务器名:PORTALSERVER
- 受管服务器:否
在含有 BEA WebLogic Server 的其他三台机器上,根据 BEA WebLogic 说明创建一个新域(所有三台机器上的 NEWDOMAIN),其中包含一个监听端口为 7001 的管理服务器(所有三台机器上的 ADMINSERVER)和监听端口为 80 的另一个服务器(所有三台机器上的 PORTALSERVER)。每个侦听端口应该相同,此例中使用端口 80。
下一步将三台机器上的 Portal Server 软件安装到提供下列详细信息的受管理服务器实例 (PORTALSERVER)。
在机器 AS、CS1、CS2 和 CS3 上执行部署门户所需的步骤,如第 2 章所述。
要建立群集:
在具有 BEA WebLogic Server 的管理服务器 (AS) 机器上,按照 BEA WebLogic 说明,创建新服务器实例监听端口 7001,并且使该实例成为管理服务器实例。
- 使用管理机器 AS 的管理控制台 (http://AS:7001/console),为组成群集的每台机器创建一个服务器。
- 选择“服务器”、“配置新服务器”。
- 使用机器名作为新服务器名:CS1、CS2 及 CS3。
- 停止要组成群集的机器上的所有服务器。
- 重新启动这些服务器,但将它们连接到管理服务器 AS。例如,
./startManagedWebLogic.sh CS1 AS:7001
- 使用管理机器 AS 的管理控制台 (http://AS:7001/console),创建群集。
- 选择“群集”、“配置新群集”。
对于“名称”参数,本例使用 NEWCLUSTER。
- 对于“地址”参数,输入代表将要组成群集的机器的服务器名:CS1、CS2、CS3。
- 在同一窗口,选择“服务器”选项卡,然后选择服务器 CS1、CS2 和 CS3;将它们从“可用”框中移动到“选定”框中。
有关更详细的信息,参见 BEA WebLogic Server 有关建立群集的说明。
在建立群集时,请记住以下几点:
- 每次更改群集配置时,要停止并重新启动所有服务器。
- 在管理服务器 (AS) 机器的 NEWDOMAIN ADMINSERVER BEA WebLogic Server 管理控制台中建立群集。
- 使用 BEA WebLogic Server 工具测试多址广播。
通过访问 BEA WebLogic Server 管理控制台,选择左窗格中的“群集”,选择右窗格中的“监视”选项卡,然后选择“监视服务器参与群集的情况”,来检查建立的群集是否正常。如果一个或多个启动的服务器实例未在显示器中显示,使用 BEA WebLogic Server 工具检查多址广播的地址和端口号是否正确。
|
注
|
如果想从管理控制台远程启动和停止 BEA WebLogic 受管理服务器,则需要配置和运行“BEA 节点管理器”。有关详细信息,参见 BEA WebLogic Server 文档。
|
|
如果计划使用代理 servlet 来实现负载平衡,请为群集创建一个 web.xml 和一个 weblogic.xml 文件,以用于配置负载平衡 servlet。使用临时目录生成一个子目录 WEB-INF。web.xml 和 weblogic.xml 文件是目录 (WEB-INF) 中仅有的文件。在该文件中使用全限定机器名。
代码示例 17-1 web.xml 文件示例
|
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
|
//DTD Web Application 2.2//EN"
|
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
|
|
<web-app>
|
|
<servlet>
|
<servlet-name>HttpClusterServlet</servlet-name>
|
<servlet-class>
|
weblogic.servlet.proxy.HttpClusterServlet
|
</servlet-class>
|
|
<init-param>
|
<param-name>WebLogicCluster</param-name>
|
<param-value>
|
CS1.domain.COM:80:7002|CS2.domain.COM:80:7002|CS3.domain.COM:80:7002
|
</param-value>
|
</init-param>
|
|
</servlet>
|
|
<servlet-mapping>
|
<servlet-name>HttpClusterServlet</servlet-name>
|
<url-pattern>/</url-pattern>
|
</servlet-mapping>
|
|
<servlet-mapping>
|
<servlet-name>HttpClusterServlet</servlet-name>
|
<url-pattern>*.jsp</url-pattern>
|
</servlet-mapping>
|
|
<servlet-mapping>
|
<servlet-name>HttpClusterServlet</servlet-name>
|
<url-pattern>*.htm</url-pattern>
|
</servlet-mapping>
|
|
<servlet-mapping>
|
<servlet-name>HttpClusterServlet</servlet-name>
|
<url-pattern>*.html</url-pattern>
|
</servlet-mapping>
|
|
</web-app>
|
|
代码示例 17-2 weblogic.xml 文件示例
|
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
|
|
<weblogic-web-app>
|
<context-root>/</context-root>
|
</weblogic-web-app>
|
|
- 将包含群集服务器值的 web.xml 文件转为 .war 文件。在终端窗口中键入:
jar cvf proxy.war WEB-INF
- 将 .war 文件复制到应用程序目录中,该目录位于管理机器 (AS) 的 NEWDOMAIN 中
- 将 proxy.war 部署到 PORTALSERVER 实例中。
下一步需要将 Portal Server 软件部署到群集。
- 转至管理服务器的 BEA WebLogic Server 管理控制台 (AS:7001/console)。
- 在左窗格中展开“Web 应用程序”,然后选择“门户”。
- 单击“目标”选项卡。取消选中 PORTALSERVER 并选中“群集中的所有服务器”,然后单击“应用”。
- 停止并重新启动所有服务器。对受管理服务器,在每台机器上键入:
./startManagedWebLogic.sh managed-servername http://AS.example.com:7001