alibabamama 发表于 2017-2-14 09:00:06

设置 WebLogic 群集

  
<script type="text/javascript"></script>
 


             <!--<a accesskey="2" href="javascript:OpenWindowIndex();"   onmouseout="window.status=''; return true"title="Open Index in new window">   <img id="LongDescNotReq5" src="/global_resources//images/doc_nav_index.gif" border="0" alt="Open Index in new window" /></a>-->  <!--<a href="../pdf/cluster.pdf" target="pdf"><img id="LongDescNotReq6" src="/global_resources/images/doc_nav_pdf.gif" width="59" height="44" alt="View as PDF - New Window" title="View as PDF - New Window" border="0" /></a>-->  <!--<a href="http://www.adobe.com/products/acrobat/alternate.html" target="_blank"><img id="LongDescNotReq7" src="/global_resources/images/get_reader.gif" width="52" height="44" alt="Get Adobe Reader - New Window" title="Get Adobe Reader - New Window" border="0" /></a>-->

http://pengjianbo1.iteye.com/global_resources/images/_.gif


设置 WebLogic 群集

下列部分包含了配置 WebLogic Server 群集的准则和说明:


[*]
开始之前
[*]
群集实现过程





开始之前

本部分简要讲述了设置 WebLogic Server 群集的前提任务和信息。


获取群集许可

群集的 WebLogic Server 实例的安装必须具有有效的群集许可。如果您没有群集许可,则请与 BEA 销售代表联系。


了解配置过程

如果您大致了解群集配置过程以及如何完成配置任务,则本部分中的信息对您最有帮助。
有关 WebLogic Server 中的可用配置工具以及它们所支持任务的信息,请参阅了解群集配置。


确定群集架构

确定什么样的群集架构最能满足您的需求。主要的架构决策包括:


[*]
应该将所有应用程序层组合在一个群集内,还是应该将应用程序层分隔在不同的群集内?
[*]
如何在群集中的服务器实例之间平衡负载?您将:

[*]
使用基本 WebLogic Server 负载平衡,
[*]
实现第三方负载平衡器,还是
[*]
将应用程序的 Web 层部署在一个或多个次级 HTTP 服务器上并向其代理请求?




[*]
是否应该定义带有一个或多个防火墙的 Web 应用程序非军事化区(De-Militarized Zone,简称 DMZ)?



要获得这些决策的指导,请参阅群集体系结构和群集中的负载平衡。
您所选择的架构将对群集的设置方式产生影响。群集架构可能还需要您安装或配置其他资源,如负载平衡器、HTTP 服务器和代理插件。


考虑网络和安全拓扑结构

安全要求构成了设计合适的安全拓扑结构的基础。有关提供各种应用程序安全级别的几种其他架构的讨论,请参阅群集体系结构的安全选项。
  


注意:
某些网络拓扑结构可能会干扰多播通信。如果您要在 WAN 中部署群集,请参阅如果群集跨越 WAN 中的多个子网。
  


注意:
请尽量不要跨越防火墙在群集中部署服务器实例。有关穿越防火墙建立多播流量隧道的结果的讨论,请参阅防火墙可能会中断多播通信。


为群集安装选择计算机

确定计划在其中安装 WebLogic Server 的一个或多个计算机(在本部分中通篇称这样的计算机为“主机”)并确保它们具有所需的资源。WebLogic Server 允许您在单独的、非多宿主计算机上设置群集。这种新功能对于演示环境或开发环境非常有用。
  


注意:
不要在具有动态分配的 IP 地址的计算机上安装 WebLogic Server。


多 CPU 计算机上的 WebLogic Server 实例

BEA WebLogic Server 对于可驻留于群集中的服务器实例数没有内置的限制。一些大型的多处理器服务器(如 Sun Microsystems, Inc. Sun Enterprise 10000)可以承载非常大的群集或者多个群集。
大多数情况下,按照每两个 CPU 一个 WebLogic Server 实例的方式进行部署,WebLogic Server 群集的可伸缩性最好。但是,您应该使用计划的所有容量对带有目标 Web 应用程序的真正部署进行测试,以确定服务器实例的最佳数量和分布。有关详细信息,请参阅“WebLogic Server 性能及调整”中的“在多 CPU 计算机上运行多个服务器实例时要注意的性能事项”。


检查主机计算机的套接口读取器实现

为了获得最佳的套接口性能,请对 WebLogic Server 主机计算机进行配置,使其使用面向您的操作系统的本地套接口读取器,而不要使用纯 Java 实现。要了解原因,以及有关配置本地套接口的说明或优化纯 Java 套接口通信的说明,请参阅使用 IP 套接口的端到端通信。


在不联网的 Windows 计算机上设置群集

如果您希望在单独的、不联网的 Windows 计算机上演示 WebLogic Server 群集,则必须强制 Windows 加载 TCP/IP 堆栈。默认情况下,如果 Windows 不检测物理网络链接,则不会加载 TCP/IP 堆栈。
要强制 Windows 加载 TCP/IP 堆栈,请使用“How to Disable Media Sense for TCP/IP in Windows”(网址为 http://support.microsoft.com/default.aspx?scid=kb;en-us;239924)中的说明禁用 Windows 媒体传感功能。


标识名称和地址

在群集配置过程中,您要为群集中的服务器实例提供地址信息 – IP 地址或 DNS 名称和端口号。
有关群集内通信的信息,以及它如何实现负载平衡和故障转移的信息,请参阅群集中的 WebLogic Server 通信。
设置群集时,必须提供下列内容的位置信息:


[*]
管理服务器
[*]
受管服务器
[*]
多播位置



请阅读下面的部分,了解有关必须提供的信息以及影响资源标识方法的因素的解释。


避免监听地址问题

配置群集时,可以使用 IP 地址或 DNS 名称指定地址信息。


DNS 名称还是 IP 地址?

决定使用 DNS 名称还是 IP 地址时,要考虑群集的用途。对于生产环境,通常建议使用 DNS 名称。在下列情况下使用 IP 地址可能会造成转换错误:


[*]
客户端要穿越防火墙连接群集,或者
[*]
在展示层和对象层之间具有防火墙,例如,在 Servlet 群集和 EJB 群集之间具有防火墙,如推荐的多层群集中所述。



通过将单个服务器实例的地址绑定到 DNS 名称,可以避免转换问题。确保环境中防火墙两侧的服务器实例的 DNS 名称相同,不要使用同时也是网络上某个 NT 系统名称的 DNS 名称。
有关使用 DNS 名称而不使用 IP 地址的详细信息,请参阅防火墙注意事项。


如果内部和外部 DNS 名称不同

如果 WebLogic Server 实例的内部和外部 DNS 名称不同,则对于该服务器实例请使用 ExternalDNSName 特性来定义该服务器的外部 DNS 名称。在防火墙之外,ExternalDNSName 应转换为服务器的外部 IP 地址。如果客户端正在基于默认通道和 T3 访问 WebLogic Server,则请不要设置 ExternalDNSName 特性,即使 WebLogic Server 实例的内部和外部 DNS 名称不同也不要设置。


本地主机注意事项

如果将服务器实例的监听地址标识为本地主机,非本地过程则无法连接该服务器实例。只有承载该服务器实例的计算机上的过程能够连接该服务器实例。如果服务器实例必须作为本地主机进行访问(例如,您具有连接本地主机的管理脚本),还必须能够由远程过程进行访问,则请将监听地址留空。该服务器将会确定计算机的地址并监听该地址。


为 WebLogic Server 资源分配名称

确保 WebLogic Server 环境中的每个可配置资源都具有唯一名称。每个域、服务器、计算机、群集、JDBC 数据源、虚拟主机或其他资源都必须具有唯一名称。


管理服务器地址和端口

标识要用于群集的管理服务器的 DNS 名称或 IP 地址以及监听端口。
管理服务器是用于配置和管理其域中所有受管服务器的 WebLogic Server 实例。当您启动受管服务器时,要标识其管理服务器的主机和端口。


受管服务器地址和监听端口

标识为群集计划的每个受管服务器的 DNS 名称或 IP 地址。
群集中的每个受管服务器都具有唯一的地址和监听端口号组合。一个非多宿主计算机上的群集服务器实例可以具有相同的地址,但必须使用不同的监听端口。


群集多播地址和端口

标识要专用于群集的多播通信的地址和端口。多播地址是介于 224.0.0.0 和 239.255.255.255 之间的 IP 地址。
  


注意:
WebLogic Server 使用的默认多播值为 239.192.0.0。不应使用值为 x.0.0.1 的任何多播地址。

群集中的服务器实例使用多播互相通信 – 它们使用多播通知其服务,发出表明持续可用性的定期心跳。
群集的多播地址不应用于除群集通信之外的任何其他目的。如果群集多播地址所位于的计算机承载使用多播通信的群集外部程序或由这些群集外部程序访问,则请确保这些多播通信使用的端口与该群集多播端口不同。


多播和多个群集

如果有必要,网络上的多个群集可以共享一个多播地址和多播端口组合。


多播和多层群集

如果您正在按照群集体系结构中所述,设置在群集之间具有防火墙的推荐的多层架构,则需要两个专用的多播地址:一个用于展示 (Servlet) 群集,一个用于对象群集。使用两个多播地址会确保防火墙不会干扰群集通信。


群集地址

在 WebLogic Server 群集中,群集地址在实体 Bean 和无状态 Bean 中用于构造请求 URL 的主机名部分。
配置群集时可以明确定义群集地址;否则 WebLogic Server 会为每个新的请求动态生成群集地址。考虑到系统管理,让 WebLogic Server 动态生成群集地址是最简单的,适合开发环境也适合生产环境。


动态群集地址

如果在配置群集时不明确定义群集地址,则当群集的服务器实例收到远程请求时,WebLogic Server 会以下列格式生成群集地址:
  

listenaddress1:listenport1,listenaddress2:listenport2;listenaddress3:
listenport3


群集地址中的每个 listen address:listen port 组合与收到该请求的受管服务器和网络通道相对应。


[*]
如果请求是在受管服务器的默认通道上收到的,群集地址中的 listen address:listen port 组合则反映相关联 ServerMBean 和 SSLMBean 实例中的 ListenAddress 和 ListenPort 值。有关详细信息,请参阅“配置 WebLogic Server 环境”中的默认网络通道。
[*]
如果请求是在自定义网络通道上收到的,群集地址中的 listen address:listen port 则反映定义该通道的 NetworkAccessPointMBean 中的 ListenAddress 和 ListenPort 值。有关群集中网络通道的详细信息,请参阅“配置 WebLogic Server 环境”中的为群集配置网络通道。



群集地址中包括的 ListenAddress:ListenPort 组合数由 ClusterMBean 上 NumberOfServersInClusterAddress 特性的值控制,默认情况下该值为 3。
您可以在管理控制台的“环境 -> 群集 -> ClusterName -> 配置 -> 常规”页上修改 NumberOfServersInClusterAddress 的值。


[*]
如果群集中可用的受管服务器数比 NumberOfServersInClusterAddress 的值少,动态生成的群集地址则会为每个运行受管服务器都包含一个 ListenAddress:ListenPort 组合。
[*]
如果群集中可用的受管服务器数比 NumberOfServersInClusterAddress 的值多,WebLogic Server 则会随机选择一部分可用实例 – 等于 NumberOfServersInClusterAddress 的值 – 并对于这些实例使用 ListenAddress:ListenPort 以形成群集地址。



ListenAddress:ListenPort 组合在群集地址中的显示顺序是随机的 – 根据请求的不同,该顺序也有所不同。


为生产环境明确定义群集地址

如果为生产环境中的群集明确定义群集地址,则请将群集地址指定为映射到群集中每个 WebLogic Server 实例的 IP 地址或 DNS 名称的 DNS 名称。
如果将群集地址定义为 DNS 名称,则不会在群集地址中指定群集成员的监听端口 – 将假设群集中的每个受管服务器都具有相同的监听端口号。因为群集中的每个服务器实例都具有唯一的地址和监听端口组合,所以如果群集地址是 DNS 名称的话,群集中的每个服务器实例则必须都拥有:


[*]
唯一的地址和
[*]
相同的监听端口号



当客户端通过提供群集 DNS 名称获取初始 JNDI 上下文时,weblogic.jndi.WLInitialContextFactory 会获取映射到该 DNS 名称的所有地址的列表。此列表由 WebLogic Server 实例缓存,新的初始上下文请求将通过循环法算法使用该缓存列表中的地址得以满足。如果该缓存列表中的某个服务器实例不可用了,则会将其从该列表中删除。只有当服务器实例无法访问其缓存中的任何地址时,该地址列表才会在 DNS 服务中刷新。
使用缓存的地址列表可以避免仅依赖于 DNS 循环法的问题。例如,DNS 循环法会一直使用已经映射到域名的所有地址,而不管这些地址是否可以访问。通过缓存该地址列表,WebLogic Server 可以删除不可访问的地址,因此对于新的初始上下文请求不会重复连接失败。
  


注意:
管理服务器不应该参与群集。请确保管理服务器的 IP 地址不会包括在群集范围的 DNS 名称中。有关详细信息,请参阅管理服务器注意事项。


为开发和测试环境明确定义群集地址

如果明确定义在开发环境中使用的群集地址,则可以按照上一部分所述,对于该群集地址使用群集 DNS 名称。
另外,您还可以将群集地址定义为包含群集中每个受管服务器的 DNS 名称(或 IP 地址)和监听端口的列表,如下面的示例所示:
  

DNSName1:port1,DNSName1:port2,DNSName1:port3

  

IPaddress1:port1,IPaddress2:port2;IPaddress3:port3


请注意,每个群集成员都具有唯一的地址和端口组合。


为单独的多宿主计算机明确定义群集地址

如果群集在单独的多宿主计算机上运行,并且群集中的每个服务器实例都使用不同的 IP 地址,则请使用映射到群集中服务器实例的 IP 地址的 DNS 名称定义群集地址。如果将群集地址定义为 DNS 名称,则请为群集中的每个受管服务器指定相同的监听端口号。



群集实现过程

本部分描述了如何通过应用程序组件的初始部署,使得 WebLogic Server 安装中的群集应用程序得以启动并运行。


配置流程图

本部分列出了典型的群集实现任务,并重点讲述了主要的配置注意事项。您要遵循的确切过程由环境的独特特征以及应用程序的特性决定。描述的任务包括:


[*]
安装 WebLogic Server
[*]
创建群集的域
[*]
配置节点管理器
[*]
为 EJB 和 RMI 配置负载平衡
[*]
为分布式 JMS 目标配置服务器关系
[*]
配置支持被动 Cookie 持久性的负载平衡器
[*]
配置代理插件
[*]
配置复制组
[*]
为固定服务配置可迁移目标
[*]
配置群集的 JDBC
[*]
打包要部署的应用程序
[*]
部署应用程序
[*]
部署、激活和迁移可迁移服务
[*]
配置内存中 HTTP 复制
[*]
其他配置主题


对于每个群集实现,并非每个步骤都是必需的。在某些情况下可能还需要一些其他步骤。


安装 WebLogic Server

如果尚未安装,则请安装 WebLogic Server。有关说明,请参阅 Installing WebLogic Server。


[*]
如果群集在一个计算机上运行,则请在 /bea 目录下面安装一个 WebLogic Server 用于所有群集实例。
[*]
对于远程的联网计算机,请在每台计算机上安装相同版本的 WebLogic Server。每台计算机:

[*]
必须具有永久分配的静态 IP 地址。您不能在群集环境中使用动态分配的 IP 地址。
[*]
必须可由客户端访问。如果服务器实例位于防火墙后面,客户端位于防火墙前面,每个服务器实例则都必须拥有可由客户端访问的公共 IP 地址。
[*]
必须位于相同的局域网(local area network,简称 LAN)上并且必须可以通过 IP 多播访问。






  


注意:
不要使用共享文件系统和一个安装在不同计算机上运行多个 WebLogic Server 实例。使用共享文件系统会为群集带来单争端点。所有服务器实例必须竞争来访问该文件系统(可能会写入不同的日志文件)。而且,如果共享文件系统失败的话,可能无法启动群集的服务器实例。


创建群集的域

有多种方法可用于创建群集的域。有关列表,请参阅配置群集的方法。
有关使用下列方法创建群集的说明:


[*]
Configuration Wizard,首先请参阅“Creating WebLogic Domains Using the Configuration Wizard”中的 Creating a New WebLogic Domain 了解创建域的说明,然后参阅 Customizing your Domain 了解配置群集的说明。
[*]
管理控制台,请参阅“管理控制台联机帮助”中的创建和配置群集。




启动 WebLogic Server 群集

有多种方法可用于启动群集 – 可用选项包括命令行界面、包含必需命令的脚本以及节点管理器。
  


注意:
节点管理器简化了启动服务器、在失败之后重启服务器的过程。
  


注意:
要使用节点管理器,必须首先在承载群集中受管服务器的每台计算机上配置节点管理器过程。请参阅配置节点管理器。

无论您用什么方法来启动群集,都首先要启动管理服务器,然后启动群集中的受管服务器。
按照下面的说明进行操作可从命令外壳启动群集。请注意,每个服务器实例都在单独的命令外壳中启动。


[*]
打开命令外壳。
[*]
将目录更改为使用 Configuration Wizard 创建的域目录。
[*]
键入下面的命令启动管理服务器:
StartWebLogic
[*]
在“Enter username to boot WebLogic Server”提示符处输入域的用户名。
[*]
在“Enter password to boot WebLogic Server”提示符处输入域的密码。
该命令外壳将显示报告启动过程状态的消息。

[*]
打开另一个命令外壳,以便可以启动受管服务器。
[*]
将目录更改为使用 Configuration Wizard 创建的域目录。
[*]
键入下面的命令:
StartManagedWebLogic server_name address:port
其中:
server_name 为要启动的受管服务器的名称
address 为该域的管理服务器的 IP 地址或 DNS 名称
port 为该域的管理服务器的监听端口

[*]
在“Enter username to boot WebLogic Server”提示符处输入域的用户名。
[*]
在“Enter password to boot WebLogic Server”提示符处输入域的密码。
该命令外壳将显示报告启动过程状态的消息。



注意:
启动受管服务器之后,它会监听来自群集中其他运行服务器实例的心跳。受管服务器会生成它的群集范围 JNDI 树本地副本,如 WebLogic Server 如何更新 JNDI 树中所述,然后当它与群集中每个运行受管服务器同步之后会显示状态消息。该同步过程大约可能需要一分钟左右。

[*]
要启动群集中的另一个服务器实例,请返回步骤 6,继续执行,直到步骤 10。
[*]
启动了群集中的所有受管服务器之后,群集启动过程完成。



配置节点管理器

节点管理器是 WebLogic Server 提供的独立 Java 程序,它对于启动与其管理服务器位于不同计算机上的受管服务器非常有用。节点管理器还提供了有助于提高群集中受管服务器的可用性的功能。有关详细信息,以及配置和使用节点管理器的说明,请参阅“管理服务器启动和关闭”中的使用节点管理器控制服务器。


为 EJB 和 RMI 配置负载平衡

请按照本部分中的说明为 EJB 和 RMI 对象选择负载平衡算法。
除非您明确指定,否则 WebLogic Server 会将循环法算法用作群集对象存根控件的默认负载平衡策略。要了解其他负载平衡算法,请参阅 EJB 和 RMI 对象的负载平衡。要更改默认负载平衡算法,请执行下列操作:


[*]
打开 WebLogic Server 控制台。
[*]
选择“环境 -> 群集”节点。
[*]
单击表中您的群集名。
[*]
如果尚未执行该操作,则单击位于控制台左上角的“锁定并编辑”按钮。
[*]
在“默认负载算法”字段中输入所需的负载平衡算法。
[*]
单击“高级”链接。
[*]
在“服务期限阈值”字段中输入所需的值。
[*]
单击“保存”保存您的更改。
[*]
准备好激活您的更改之后,立即单击左上角的“激活更改”按钮。



为 RMI 指定超时值

通过将 ClusterMBean 中的 ReplicationTimeoutEnabled 设置为 true,可以启用调用 ReplicationManager 时的超时选项。
该超时值等于多播心跳超时。尽管您可以自定义多播超时值,但 ReplicationManager 超时不能更改。之所以存在这种限制,是因为 ReplicationManager 超时不影响群集成员资格。丢失多播心跳会导致成员从群集中被删除,超时的 ReplicationManager 调用会选择新次级服务器进行连接。
  


注意:
群集成员可以继续发送多播心跳,但是无法处理复制请求。这样可能会导致次级服务器的分布不均匀。如果发生这种情况,则会在服务器日志中记录警告消息。


为分布式 JMS 目标配置服务器关系

要了解 WebLogic Server 为 JMS 提供的服务器关系支持,请参阅 JMS 的负载平衡。


配置支持被动 Cookie 持久性的负载平衡器

支持被动 Cookie 持久性的负载平衡器可以使用 WebLogic Server 会话 Cookie 中的信息将客户端与承载该会话的 WebLogic Server 实例相关联。会话 Cookie 包含了负载平衡器用来标识会话的主服务器实例的字符串。
有关外部负载平衡器、会话 Cookie 持久性和 WebLogic Server 会话 Cookie 的讨论,请参阅使用外部负载平衡器实现 HTTP 会话的负载平衡。
要配置用于群集的负载平衡器,请使用该负载平衡器的工具来定义该字符串常量的偏移和长度。
假设会话 Cookie 上会话 ID 部分的默认长度为 52 字节,则请在该负载平衡器上将:


[*]
字符串偏移设置为 53 字节,即默认随机会话 ID 长度加上用于分隔符的 1 个字节。
[*]
字符串长度设置为 10 字节



如果您的应用程序或环境要求指示您要将随机会话 ID 的长度从其默认值 52 字节更改为其他值,则请在负载平衡器上对字符串偏移进行相应设置。字符串偏移必须等于会话 ID 的长度加上用于分隔符的 1 个字节。
  


注意:
有关配置 Big-IP 负载平衡器的供应商特定说明,请参阅为群集配置 BIG-IP™ 硬件。


配置代理插件

如果您希望使用代理插件对 Servlet 和 JSP 进行负载平衡,则请参阅本部分中的说明。代理插件会将请求从 Web 服务器代理到群集中的 WebLogic Server 实例,并且会为被代理的 HTTP 请求提供负载平衡和故障转移。
有关使用代理插件进行负载平衡的信息,请参阅使用代理插件进行负载平衡。有关使用代理插件的连接和故障转移的信息,请参阅 Servlet 和 JSP 的复制和故障转移和使用代理访问群集的 Servlet 和 JSP。


[*]
如果将 WebLogic Server 用作 Web 服务器,则请使用设置 HttpClusterServlet 中的说明设置 HttpClusterServlet。
[*]
如果使用受支持的第三方 Web 服务器,请设置产品特定的插件(有关受支持 Web 服务器的列表,请参阅使用代理插件进行负载平衡),然后按照使用 WebLogic Server 的插件中的说明进行操作。


  


注意:
每个将请求代理到群集的 Web 服务器都必须具有配置相同的插件。


设置 HttpClusterServlet

要使用 HTTP 群集 Servlet,请按照下面步骤中的描述,将其配置为代理服务器计算机上的默认 Web 应用程序。有关 Web 应用程序的介绍,请参阅“为 WebLogic Server 开发 Web 应用程序”中的了解 Web 应用程序、Servlet 和 JSP。


[*]
如果尚未执行此操作,则请配置一个单独的、非群集的受管服务器来承载 HTTP 群集 Servlet。
[*]
为该 Servlet 创建 web.xml 部署描述符文件。此文件必须位于该 Web 应用程序目录的 \WEB-INF 子目录中。示例 web.xml 中提供了代理 Servlet 的示例部署描述符。有关 web.xml 的详细信息,请参阅“开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP”中的了解 Web 应用程序、Servlet 和 JSP。
[*]
在 web.xml 的 <servlet> 元素中为 Servlet 定义名称和类。该 Servlet 的名称为 HttpClusterServlet。Servlet 类为 weblogic.servlet.proxy.HttpClusterServlet。
[*]
通过定义 WebLogicCluster 参数,在 web.xml 的 <servlet> 元素中标识代理 Servlet 会将请求定向到的群集服务器实例。
[*]
(可选)定义下列 <KeyStore> 初始化参数,以便通过您自己的标识证书和密钥使用双向 SSL。如果在部署描述符中不指定 <KeyStore>,该代理则采用单向 SSL。

[*]
<KeyStore> - Web 应用程序中的密钥库位置。
[*]
<KeyStoreType> - 密钥库类型。如果不定义,则使用默认类型。
[*]
<PrivateKeyAlias> - 私钥别名。
[*]
<KeyStorePasswordProperties> - Web 应用程序中定义用来访问密钥库和私密别名的加密密码的属性文件。该文件内容类似此内容:
KeyStorePassword={3DES}i4+50LCKenQO8BBvlsXTrg\=\=
PrivateKeyPassword={3DES}a4TcG4mtVVBRKtZwH3p7yA\=\=

您必须使用 weblogic.security.Encrypt 命令行实用工具来对该密码进行加密。有关该 Encrypt 实用工具的详细信息,以及 CertGen 和 der2pem 实用工具的详细信息,请参阅“WebLogic Server 命令参考”中的使用 WebLogic Server Java 实用工具。




[*]
创建 <servlet-mapping> 部分来指定 Servlet 会将其代理到群集的请求,使用 <url-pattern> 元素标识特定的文件扩展名,例如 *.jsp 或 *.html。在单独的 <servlet-mapping> 部分中定义每个模式。
您可以将 <url-pattern> 设置为“/”,以便将 WebLogic Server 无法解析的任何请求都代理到远程服务器实例。如果进行了上述设置,则还必须专门映射下列扩展名:*.jsp、*.html 和 *.html,以便代理以这些扩展名结束的文件。有关示例,请参阅示例 web.xml 。

[*]
适当情况下定义任何附加参数。有关主要参数的列表,请参阅表 9-1。有关完整列表,请参阅“使用 WebLogic Server 的 Web 服务器插件”中的 Web 服务器插件的参数。按照代理 Servlet 部署参数中的语法说明进行操作。



[*]
为 Servlet 创建 weblogic.xml 部署描述符文件。此文件必须位于 Web 应用程序目录的 \WEB-INF 子目录中。
通过将 <weblogic-web-app> 部分中的 <context-root> 元素设置为正斜杠字符 (/),将该代理 Servlet 分配为代理计算机上受管服务器的默认 Web 应用程序。有关示例,请参阅示例 weblogic.xml。

[*]
在管理控制台中,将该 Servlet 部署到代理服务器计算机上的受管服务器中。有关说明,请参阅“管理控制台联机帮助”中的部署新的 Web 应用程序。



示例 web.xml


本部分包含了 HttpClusterServlet 的示例部署描述符文件 (web.xml)。
web.xml 定义指定代理 Servlet 位置和行为的参数:两个版本的 Servlet:


[*]
DOCTYPE 部分指定 WebLogic Server 用来验证 web.xml 的 DTD。
[*]
servlet 部分:

[*]
指定代理插件 Servlet 类的位置。该文件位于 WL_HOME/server/lib 目录中的 weblogic.jar 中。您不必在 web.xml 中指定 Servlet 的完整路径,因为当您启动 WebLogic Server 时 weblogic.jar 已经放入了CLASSPATH。
[*]
使用 WebLogicCluster 参数标识群集中每个受管服务器的主机名(DNS 名称或 IP 地址)和监听端口。
[*]
标识将双向 SSL 用于您自己的标识证书和密钥的密钥库初始化参数。




[*]
这三个 servlet-mapping 部分指定 Servlet 会将以“/”、“htm”、“html”或“jsp”结束的 URL 代理到群集。



有关参数定义,请参阅代理 Servlet 部署参数。
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.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>hostname1:7736|hostname2:7736|hostname:7736</param-value>
  </init-param>
  

  <init-param>
    <param-name>KeyStore</param-name>
    <param-value>/mykeystore</param-value>
  </init-param>

  

  <init-param>
    <param-name>KeyStoreType</param-name>
    <param-value>jks</param-value>
  </init-param>

  

  <init-param>
    <param-name>PrivateKeyAlias</param-name>
    <param-value>passalias</param-value>
  </init-param>

  

  <init-param>
    <param-name>KeyStorePasswordProperties</param-name>
    <param-value>mykeystore.properties</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>


示例 weblogic.xml

本部分包含一个示例 weblogic.xml 文件。<context-root> 部署参数设置为了“/”。这样会使得该代理 Servlet 成为代理服务器的默认 Web 应用程序。
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 9.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic
810-web-jar.dtd">
  <weblogic-web-app>
    <context-root>/</context-root>
  </weblogic-web-app>


代理 Servlet 部署参数

web.xml 中用于配置代理 Servlet 行为的主要参数位于表 9-1 中。
代理 Servlet 的参数与用于为 Apache、Microsoft 和 Netscape Web 服务器配置 WebLogic Server 插件的参数相同。有关为第三方 Web 服务器配置代理 Servlet 和插件的参数完整列表,请参阅“使用 WebLogic Server 的 Web 服务器插件”中的 Web 服务器插件的参数。
对于代理 Servlet 和每个插件,指定参数的语法以及在其中指定这些参数的文件都不同。
对于代理 Servlet,请在 web.xml 中指定这些参数,每个参数都位于 web.xml <servlet> 部分中它自己的 <init-param> 部分。例如:
<init-param>
<param-name>ParameterName</param-name>
<param-value>ParameterValue</param-value>
</init-param>

表 9-1 代理 Servlet 部署参数

参数

用法




WebLogicCluster



<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>WLS1.com:port|WLS2.com:port
</param-value>

其中 WLS1.com 和 WLS2.com 为群集中服务器的主机名,port 为主机在其中监听 HTTP 请求的端口。

如果您在插件和 WebLogic Server 之间使用 SSL,请将端口号设置为 SSL 监听端口(请参阅“配置监听端口”)并将 SecureProxy 参数设置为 ON。





SecureProxy



<init-param>
<param-name>SecureProxy</param-name>
<param-value>ParameterValue</param-value>
</init-param>

有效值为 ON 和 OFF。

如果您在插件和 WebLogic Server 之间使用 SSL,请将端口号设置为 SSL 监听端口(请参阅“配置监听端口”)并将 SecureProxy 参数设置为 ON。





DebugConfigInfo



<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ParameterValue</param-value>
</init-param>

有效值为 ON 和 OFF。

如果设置为 ON,通过将请求参数 ?__WebLogicBridgeConfig 添加到任何请求,可以查询 HttpClusterServlet 用于调试信息。(注意:在 ? 后面有两个下划线 ( _ ) 字符。)由于安全方面的原因,建议您在生产环境中将 DebugConfigInfo 参数设置为 OFF。





ConnectRetry
Secs



Servlet 在连接服务器实例的尝试之间要休眠的间隔(秒)。请分配一个小于 ConnectTimeoutSecs 的值。

Servlet 向客户端返回 HTTP 503/Service Unavailable 响应之前尝试连接的次数等于 ConnectTimeoutSecs 除以 ConnectRetrySecs。

语法:

<init-param>
<param-name>ConnectRetrySecs</param-name>
<param-value>ParameterValue</param-value>
</init-param>





ConnectTimeout
Secs



Servlet 尝试连接服务器实例的最长时间(秒)。请分配一个大于 ConnectRetrySecs 的值。

如果成功连接之前 ConnectTimeoutSecs 过期,则会向客户端发送 HTTP 503/Service Unavailable 响应。

语法:

<init-param>
<param-name>ConnectTimeoutSecs</param-name>
<param-value>ParameterValue</param-value>
</init-param>





PathTrim



请求转发到群集之前,插件从原始 URL 开始剪切的字符串。

语法:

<init-param>
<param-name>PathTrim</param-name>
<param-value>ParameterValue</param-value>
</init-param>

示例:

如果 URL

http://myWeb.server.com/weblogic/foo

传递到插件进行分析,并且 PathTrim 设置为了

/weblogic

转发给 WebLogic Server 的 URL 则为:

http://myWeb.server.com:7001/foo




页: [1]
查看完整版本: 设置 WebLogic 群集