Sun ONE logo      上一页      目录      索引      下一页     

Sun ONE Portal Server 6.2 安装指南

附录 B
BEA WebLogic Server


在 BEA 群集上设置 Sun ONE Portal Server

本部分简单介绍并举例说明 Sun™ ONE Portal Server 软件在 BEA WebLogic Server™ 群集上的使用方法。


注意

  • 一个群集的所有机器必须处于同一个子网中。所有参与群集的 BEA WebLogic Server 实例必须在同一个端口上侦听。为成功使用会话故障切换功能运行 Portal Server 软件,您需要运行 Portal Server 软件的 3 个受管理服务器。
  • 如果计划使用群集,请不要运行 perftune
  • SRA 不能与群集一起工作。
  • BEA WebLogic Server 代理不进行负载均衡。BEA WebLogic 群集中的所有服务器实例必须使用同一个侦听端口。weblogic.servlet.proxy.HttpClusterServlet 需要使用新的群集 servlet。
  • Resonate 3.3 无法实现 BEA WebLogic 群集的负载均衡。

我们的例子需要 5 台机器。所有机器必须处于同一个子网中。其中一台仅含有目录服务器 (DSmach)。另一台是 BEA WebLogic 管理服务器 (AS)。还有 3 台群集机器(CS1、CS2 和 CS3)。如果想支持负载均衡,可以将另外一台机器或管理服务器机器配置成用于实现负载均衡的代理 servlet。您还可以使用一个基于硬件的负载均衡器。群集需要具有负载均衡功能。在本例中,代理位于管理服务器上。

在 Dsmach 上安装目录服务器。使用缺省安装方式,将 BEA WebLogic Server 安装到所有其它 4 台机器上。检查所有服务器是否工作正常。

在含有 BEA WebLogic Server 的 4 台机器上,根据 BEA WebLogic 说明创建一个新域(所有机器上的 NEWDOMAIN),其中包含一个侦听端口为 7001 的管理服务器(所有机器上的 ADMINSERVER)和侦听端口为 80 的另一个服务器(所有机器上的 PORTALSERVER)。每个侦听端口应该相同,此例中使用端口 80。

下一步将 4 台机器上的 Portal Server 软件安装到受管理服务器实例 (PORTALSERVER) 中。

  1. 对下面的问题回答 n使用这些设置吗?[y]/n
  2. 接下来是一个问题列表。

  3. 除以下问题外,所有问题使用缺省值。下面的问题显示了需要更改的值以及重要的缺省值。这是针对 BEA WebLogic 管理服务器的例子。群集机器的安装值与此类似。
  4. Application Server 域是什么? [mydomain] NEWDOMAIN

    Application Server 实例是什么? [myserver] PORTALSERVER

    Application Server 管理端口是多少? [7001]

    访问 Portal Server 应该使用哪个端口? [80]

    使用现有的 Directory Server 吗?y/[n] y

    Directory Server 的名称是什么?[...]DSmach

    正确回答关于 Directory Server 的问题。

  5. 停止并重新启动所有机器上的所有服务器(Portal Server、受管理服务器以及管理服务器)。
  6. 检查安装是否成功。
  7. 以管理员身份登录到 Sun ONE Identity Server 管理员控制台。
  8. 默认情况下,位置窗格中选中“标识管理”,且所有已创建组织都显示在导航窗格中。

  9. 在位置窗格中选择“服务配置”。
  10. 单击导航窗格中“平台”旁的“属性”箭头。
  11. 检查“服务器列表”中是否含有计划安装代理的机器的 full-ps-servername。在我们的例子中,此机器为 http://AS.example.com:80
  12. 单击“保存”。

要建立群集:

  1. 使用管理机器 AS 的管理控制台 (http://AS:7001/console),为组成群集的每台机器创建一个服务器。
    1. 选择“服务器”、“配置新服务器”。
    2. 使用机器名作为新服务器名:CS1、CS2 及 CS3。
  2. 停止要组成群集的机器上的所有服务器。
  3. 重新启动这些服务器,但将它们连接到管理服务器 AS。例如,
  4. ./startManagedWebLogic.sh CS1 AS:7001

  5. 使用管理机器 AS 的管理控制台 (http://AS:7001/console),创建群集。
    1. 选择“群集”、“配置新群集”。
    2. 对于“名称”参数,本例使用 NEWCLUSTER。

    3. 对于“地址”参数,输入代表将要组成群集的机器的服务器名:CS1、CS2、CS3。
    4. 在同一窗口,选择“服务器”标签,然后选择服务器 CS1、CS2 和 CS3;将它们从“可用”框中移动到“选定”框中。

有关更详细的信息,请参阅 BEA WebLogic Server 有关建立群集的说明。

在建立群集时,请记住以下几点:

通过访问 BEA WebLogic Server 管理控制台,选择左窗格中的“群集”,选择右窗格中的“监视”标签,然后选择“监视服务器参与群集的情况”,来检查建立的群集是否正常。如果一个或多个启动的服务器实例未在显示器中显示,使用 BEA WebLogic Server 工具检查多址广播的地址和端口号是否正确。


注意

如果想从管理控制台远程启动和停止 BEA WebLogic 受管理服务器,则需要配置和运行“BEA 节点管理器”。有关详细信息,请参阅 BEA WebLogic Server 文档。


如果想使用代理 servlet 实现负载均衡,请创建一个群集用来配置负载均衡 servlet 的 web.xml 文件。使用临时目录生成一个子目录 WEB-INFweb.xml 文件是目录 (WEB-INF) 中仅有的文件。在该文件中使用全限定机器名。

图 B-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>

  1. 将包含群集服务器值的 web.xml 文件转为 .war 文件。在终端窗口中键入:
  2. jar cvf proxy.war WEB-INF

  3. 使用 BEA WebLogic Server 软件提供的 java weblogic.deploy 命令,将 .war 文件部署到 BEA WebLogic 管理服务器上。
  4. 在管理服务器的 BEA WebLogic Server 管理控制台中,展开“服务器”,然后选择 PORTALSERVER:80。
  5. 单击 HTTP 标签。
  6. 设置代理的“默认网络应用程序”。
  7. 重新启动 Portal Server。
  8. 或在生成 .war 文件后,将 .war 文件复制到应用程序目录中,该目录位于管理机器 (AS) 的新域中。

  9. 选择“网络应用程序”。
  10. 单击“配置新网络应用程序”。
  11. 输入 proxy 作为“名称”,并给出到 .war 文件的完整路径。
  12. 单击“创建”。
  13. 在“网络应用程序”下方左窗格中,单击代理。
  14. 在右窗格中,单击“目标”标签,然后将 Portal Server 从“可用”框移到“选定”框中。

下一步需要将 Portal Server 软件部署到群集。对于每个网络应用程序(amconsole、amserver、amcommon、ampassword 和 portal),执行以下步骤。

  1. 转至管理服务器的 BEA WebLogic Server 管理控制台 (AS:7001/console)。
  2. 在左窗格中展开“网络应用程序”,然后选择其中一个 Portal Server 软件网络应用程序(amconsole、amserver、amcommon、ampassword 和 portal)。
  3. 删除管理服务器的部署(您已经在 PORTALSERVER 服务器上安装了“门户”,但它不是群集的组成部分,因此现在您要把它从此服务器上删除)。
    1. 选择“目标”标签,然后选择“服务器”子标签。
    2. 将服务器名称从“选定”框移到“可用”框中,然后单击“应用”。
  4. 单击“编辑网络应用程序描述符”链接;单击“配置新网络应用程序扩展描述符”链接。
  5. 在 WebApp Ext 下的左窗格中,选择“会话描述符”。
  6. 在右窗格中,将“持久存储器类型”更改为复制。单击“应用”。
  7. 选择左窗格中的主题,“网络描述符”或“标识服务器服务”。选择“持续”。关闭此窗口。
  8. 选择“目标”标签,然后选择“群集”子标签。
  9. 将群集名称 (NEWCLUSTER) 从“可用”框移到“选定”框中,然后单击“应用”。
  10. 对于三台 Portal Server 机器中的每一台,转至 identity-server-install-root/SUNWam/lib 目录,然后使用文本编辑器打开 AMConfig.properties 文件。
  11. 在所有机器上设置以下值:
  12. com.iplanet.am.session.failover.enabled=true

    com.iplanet.am.replica.enable=true

    com.iplanet.am.naming.url=http://AS.example.com:80/amserver/namingservice

    com.iplanet.am.notification.url=http://AS.example.com:80/amserver/notificationservice

    com.iplanet.am.session.server.host=AS.example.com

    com.iplanet.am.server.host=ASNMS.example.com

    com.iplanet.services.cdsso.CDCURL=http://AS.example.com:80/amserver/cdcservlet

    com.iplanet.services.cdc.authLoginUrl=http://AS.example.com:80/amserver/login

  13. 停止并重新启动所有服务器。对受管理服务器,在每台机器上键入:
  14. ./startManagedWebLogic.sh managed-servername http://AS.example.com:80

  15. 检查一切是否工作正常。


设置 Cookie 编码值

当目标网络容器是 BEA WebLogic Server 或 WebSphere Application Server 时,AMConfig.properties 文件中的 com.iplanet.am.cookie.encode 属性应该设置为“true”。因为 WebLogic 不会自动对由网络应用程序设置的 cookie 值进行编码,所以必须进行此操作。

在 BEA WebLogic Server 和 IBM WebSphere Application Server 下,将 com.iplanet.am.cookie.encode 设置为“true”,可以避免逗号、分号和空格等字符,不进行换码或编码就被 Sun ONE Identity Server 设置在 cookie 值中。当逗号、分号和空格等字符未经编码或换码而直接设置为 cookie 值时,某些网络浏览器将无法正确分析 cookie 值。从而导致应用程序在随后的请求中接收到被破坏的 cookie 值。

当目标网络容器是 WebLogic 时,编辑 AMConfig.properties 文件,将 com.iplanet.am.cookie.encode 属性的值设置为 true。



上一页      目录      索引      下一页     


版权所有 2003 Sun Microsystems, Inc. 保留所有权利。