对于weblogic集群,若采用apache做代理转发的话,weblogic提供了一个专门的模块,即位于${wl_home}/server/plugin/linux/x86_64目录下的mod_wl_22.so或mod_wl_20.so。
使用的时候,只需要把mod_wl_22.so这个模块拷贝到${apache_home}/modules/下,然后修改${apache_home}/config/httpd.conf文件,增加如下代码
1. LoadModule weblogic_module modules/mod_wl_22.so
2. <IfModule mod_weblogic.c>
WeblogicCluster192.168.10.101:7010,192.168.10.102:7011
MatchExpression *
WLLogFile "/logs/wlproxy.log"
Debug On
DebugConfigInfo On
KeepAliveEnabled On
KeepAliveSecs 15
</IfModule>
然后重启apache即可。
HTTP 请求应转发到的 WebLogic Server 主机(或 WebLogic Server 中定义的虚拟主机名)。 如果使用的是 WebLogic 群集,请使用 WebLogicCluster 参数而不要使用 WebLogicHost。 | ||
WebLogic Server 主机用于监听来自插件(或来自其他服务器)的连接请求的端口。(如果要在插件和 WebLogic Server 之间使用 SSL,则将此参数设置为 SSL 监听端口(请参阅配置 SSL),并将SecureProxy 参数设置为 ON。 如果使用的是 WebLogic 群集,请使用 WebLogicCluster 参数而不要使用 WebLogicPort。 | ||
可用于负载平衡的 WebLogic Server 的列表。该服务器或群集列表是 host:port 条目的列表。如果指定了群集和单个服务器的混合组,则此参数返回的动态列表将仅返回群集服务器。 指定参数的方法和所需格式将因插件而异。请参阅以下部分中的示例: (如果要在插件和 WebLogic Server 之间使用 SSL,则将端口号设置为 SSL 监听端口(请参阅配置 SSL),并将 SecureProxy 参数设置为 ON。 插件会在所有可用服务器之间执行一个简单循环。此属性中指定的服务器列表是服务器和插件维护的动态服务器列表的起点。WebLogic Server 和插件会协同工作,将新的、发生故障的以及已恢复的群集成员自动更新到服务器列表。 可通过将 DynamicServerList 参数设置为 OFF 禁用动态群集列表。 插件会将包含 Cookie、URL 编码的会话或存储在 POST 数据中的会话的 HTTP 请求定向到群集中最初创建该 Cookie 的服务器。 | ||
在请求转发到 WebLogic Server 之前由插件从原始 URL 的开头部分剪切的字符串。例如,如果 URL http://myWeb.server.com/weblogic/foo 传递到插件以供解析,并且 PathTrim 已设置为在将该 URL 传递到 WebLogic Server 之前截掉 /weblogic,则转发到 WebLogic Server 的 URL 为: http://myWeb.server.com:7001/foo 请注意,如果最近将代理请求的现有第三方服务器转换为使用该插件的 WebLogic Server,则需要将应用程序路径更改为 /foo 以包含 weblogic/foo。可将 PathTrim 和 PathPrepend 结合使用以更改此路径。 | ||
在剪切 PathTrim 之后且在将请求转发到 WebLogic Server 之前,插件附加到原始 URL 开头的字符串。 | ||
插件应尝试连接到 WebLogic Server 主机的最长时间(秒)。应使该值大于 ConnectRetrySecs。如果ConnectTimeoutSecs 过期甚至在适当的重试之后都未连接成功(请参阅 ConnectRetrySecs),则会向客户端发送 HTTP 503/Service Unavailable 响应。 可使用 ErrorPage 参数自定义错误响应。 | ||
插件应在连接到 WebLogic Server 主机(或群集中的所有服务器)的尝试之间休眠的时间间隔(秒)。应使该数字小于 ConnectTimeoutSecs。插件在将 HTTP 503/Service Unavailable 响应返回到客户端之前尝试进行连接的次数是通过将 ConnectTimeoutSecs 除以 ConnectRetrySecs 来计算的。 要指定不进行重试,则将 ConnectRetrySecs 设置为等于 ConnectTimeoutSecs。但是,插件会尝试至少连接两次。 可使用 ErrorPage 参数自定义错误响应。 | ||
设置为调试操作执行的日志记录的类型。在 UNIX 系统上,调试信息会写入 /tmp/wlproxy.log 文件,在 Windows NT/2000 系统上,调试信息会写入 c:/TEMP/wlproxy.log。可通过将 WLLogFile 参数设置为其他目录和文件来替换此位置和文件名。请确保 tmp 或 TEMP 目录将写权限分配给登录到该服务器的用户。设置以下任何日志记录选项(可通过以逗号分隔的方式输入来一起设置 HFC,HTW,HFW 和 HTC 选项,例如“HFC,HTW”): 插件记录发送到 WebLogic Server 的消息头、信息性消息和错误消息。 插件记录从 WebLogic Server 发送的消息头、信息性消息和错误消息。 插件记录发送到客户端的消息头和来自客户端的消息头、发送到 WebLogic Server 的消息头和来自 WebLogic Server 的消息头、信息性消息以及错误消息。 | ||
请参阅 debug参数 | 为在将 debug 参数设置为 ON 的情况下生成的日志文件指定路径和文件名。必须在设置此参数之前创建此目录。 | |
如果在代理配置中定义,则它指定 WebLogic Server 刷新服务器的 DNS 名称到 IP 的映射的时间间隔秒数。这可用于这样的情况,即 WebLogic Server 实例已迁移到其他 IP 地址,但该服务器 IP 的 DNS 名称仍然保持不变。在此情况下,将以指定刷新时间间隔更新 DNS<->IP 映射。 | ||
请参阅 debug参数 | 指定将在其中创建 wlproxy.log 的目录。如果无法在该位置创建该文件,那么,插件将在 Windows 中的C:/temp 下和所有 Unix 平台上的 /tmp 下创建该日志文件。 还为 post 数据文件指定 _wl_proxy 目录的位置。 当同时指定了 WLTempDir 和 WLLogFile 时,WLLogFile 将替换为 wlproxy.log 的位置。WLTempDir 仍将确定_wl_proxy 目录的位置。 | |
启用特殊的查询参数“__WebLogicBridgeConfig”。使用它可从插件获取有关配置参数的详细信息。 例如,如果通过设置 DebugConfigInfo 启用“__WebLogicBridgeConfig”,然后发送包含查询字符串 ?__WebLogicBridgeConfig 的请求,则插件会收集配置信息和运行时统计信息,然后将信息返回到浏览器。在此情况下,插件不连接到 WebLogic Server。 | ||
如果设置为 true,则插件会在将请求转发到 WebLogic Server 之前检查请求的转换路径(“Proxy-Path-Translated”)是否存在以及该路径的权限。 如果该文件不存在,则会向客户端返回一个 HTTP 404 File Not Found 响应。如果该文件存在但不是完全可读,则会向客户端返回一个 HTTP 403/Forbidden 响应。在上述任一情况下,Web 服务器的处理这些响应的默认机制都会完成该响应的正文。如果 WebLogic Server Web 应用程序和 Web 服务器具有相同的文档根,则此选项非常有用。 可使用 ErrorPage 参数自定义错误响应。 | ||
定义插件等待对 WebLogic Server 发出的请求的响应的时间。插件会等待 HungServerRecoverSecs 的时间以等待服务器做出响应,然后它将声明该服务器无法使用,并故障转移到下一个服务器。该值应设置为非常大的值。如果该值小于 Servlet 进行处理所需的时间,则可能会出现意外结果。 | ||
设置为 ON 时,如果服务器未在 WLIOTimeoutSecs (new name for HungServerRecoverSecs) 内进行响应,则插件将进行故障转移。 如果设置为“OFF”,则插件不会进行故障转移。如果使用的是 Netscape Enterprise Server 插件或 Apache HTTP Server,则可针对不同的 URL 或 MIME 类型对此参数进行不同的设置。 | ||
如果在 WebLogic Server Web 应用程序中更改了 WebLogic Server 会话 Cookie 的名称,则需要在插件中将 CookieName 参数更改为同一值。WebLogic 会话 Cookie 的名称是在 WebLogic 特定的部署描述符中的<session-descriptor> 元素中设置的。 | ||
此过程可防止从 WebLogic Server 进行重定向。 在请求要代理到的 WebLogic Server 中将 DefaultFileName 设置为 Web 应用程序的默认欢迎页。例如,如果 DefaultFileName 设置为 welcome.html,则类似“http://somehost/weblogic”的 HTTP 请求将变为“http://somehost/weblogic/welcome.html”。要使此参数发挥作用,必须在请求定向到的所有 Web 应用程序中将同一文件指定为欢迎文件。有关详细信息,请参阅配置欢迎页面。 Apache 用户请注意,如果您使用的是 Stronghold 版或 Raven 版,则应在 Location 块(而不是在IfModule 块)的内部定义此参数。 | ||
POST 数据的最大可允许大小(字节)。如果内容长度超过了 MaxPostSize,则插件将返回错误消息。如果设置为 -1,则不检查 POST 数据的大小。这对于防止试图用 POST 数据使服务器超载的拒绝服务攻击,十分有用。 | ||
当按 MIME 类型进行代理时,请使用 MatchExpression 参数设置 IfModule 块内部的文件名模式。 <IfModule mod_weblogic.c> <IfModule mod_weblogic.c> | ||
该参数设置为 ON 且请求中 POST 数据的大小大于 2048 字节时,POST 数据会先读取到磁盘上的临时文件中,然后以 8192 字节的块转发到 WebLogic Server。这样可以在故障转移期间保留 POST 数据,从而在主服务器停机的情况下,所有必需的数据都可以复制到次级服务器。 请注意,当 FileCaching 为 ON 时,跟踪 POST 的进度的任何客户端都将认为传输已完成,即使数据仍在 Web 服务器和 WebLogic 之间传输,也是如此。因此,如果希望上载期间由浏览器显示的进度栏可反映实际上何时数据可在 WebLogic Server 上使用,则可能不希望将 FileCaching 设置为 ON。 该参数设置为 OFF 且请求中 POST 数据的大小大于 2048 字节时,POST 数据的读取会延迟,直到某个 WebLogic Server 群集成员标识为可对请求提供服务。然后,插件会读取 POST 数据并立即将其以 8192 字节的块发送到 WebLogic Server。 请注意,将 FileCaching 设置为 OFF 会限制故障转移。如果在处理请求时 WebLogic Server 主服务器停机,则已发送到主服务器的 POST 数据将无法复制到次级服务器。 最后需要说明的是,无论 FileCaching 是如何设置的,在 POST 数据的大小等于或小于 2048 字节的情况下,插件都会将数据读取到内存中,并在故障转移期间需要将其复制到次级服务器时使用它。 | ||
此参数的值为 0(低)、1(中)和 2(高)。默认值为 2。此优先级应放入 iisforward.ini 文件中。此特性用于在 IIS 中设置 iisforward.dll 筛选器的优先级级别。IIS 使用优先级级别决定在多个筛选器与传入请求匹配的情况下将先调用哪个筛选器。 | ||
可在位置标记级别对此参数进行本地定义,也可全局定义此参数。当在本地定义该属性时,该属性不会替换全局属性,而是定义两个参数的联合。 | ||
如果 WlForwardPath 设置为“/”,则会代理所有请求。要转发以特定字符串开头的任何请求,请将WlForwardPath 设置为该字符串。例如,将 WlForwardPath 设置为 /weblogic 可将所有以 /weblogic 开头的请求转发到 Weblogic Server。 如果按路径进行代理,则此参数为必需。可通过使用逗号分隔字符串来设置多个字符串。例如:WlForwardPath=/weblogic,/bea。 | ||
持续时间。在持续时间之后,将关闭插件和 WebLogic Server 之间的非活动连接。必须将KeepAliveEnabled 设置为 true(使用 Apache 插件时为 ON),此参数才有效。 此参数的值必须小于或等于管理控制台中“服务器/HTTP”选项卡上设置的“持续时间”字段的值或使用KeepAliveSecs 特性在 server MBean 上设置的值。 | ||
启用插件和 WebLogic Server 之间的连接缓冲池。 | ||
设置为 ON 时,指定 Apache 插件使用 设置为 OFF时,Apache 插件使用 | ||
如果 WebLogicCluster 参数中或从 WebLogic Server 返回的动态群集列表中列出的 WebLogic Server 出现故障,则故障的服务器会标记为“故障”,并且插件会尝试连接到列表中的下一个服务器。 MaxSkips 用于设置时间量,插件将在该时间量之后重试标记为“故障”的服务器。每次收到一个唯一请求(即不带 Cookie 的请求)时,插件都会尝试连接到列表中的新服务器。 | ||
设置为 OFF 时,插件会忽略用于从插件代理的负载平衡请求的动态群集列表,并仅使用通过WebLogicCluster 参数指定的静态列表。通常,此参数应保持设置为 ON。 | ||
在存在以下情况时,将此参数设置为 ON 可保持插件和 WebLogic Server 之间的 SSL 通信:
当 WLProxySSL 设置为 ON 时,从 WebLogic Server 返回到客户端的位置头指定了 HTTPS 协议。 | ||
不支持将 SCG 证书与 WebLogic Server 代理插件结合使用。非 SCG 证书可正常发挥作用,并允许 WebLogic Server 和插件之间的 SSL 通信。 |
注意: | 不支持将与密钥库相关的初始化参数与 WebLogic Server 代理插件结合使用。 |
此参数关闭使用 SSL 证书验证时(此时将不会正确拒绝带有无效 V3 CA 证书的证书链)存在的安全漏洞。这会允许信任根为有效 CA 证书、带有无效中间 CA 证书的证书链。X509 V3 CA 证书需要包含基本约束扩展、标记为 CA,并需要标记为关键扩展。此检查可防止非 CA 证书伪装为中间 CA 证书。 此级别完全禁用强制措施,不建议使用。大多数当前的商业 CA 证书都应该能够在默认的 STRONG 设置下工作。 默认值。会检查 V3 CA 证书的基本约束,并会验证证书是否为 CA 证书。 EnforceBasicConstraints=strong 在此级别执行的检查与在 STRONG 级别执行的检查相同,但是,此外,该级别还严格地强制实施 IETF RFC 2459(该规范指定 CA 证书的基本约束也必须标记为“关键”)。这不是默认设置,因为许多当前在商业上可用的 CA 证书不遵循 RFC 2459,不将基本约束标记为关键。如果要严格遵循 RFC 2459,请进行此设置。 | ||
将此参数设置为 ON 可为插件和 WebLogic Server 之间的所有通信启用 SSL 协议。请记住在定义此参数之前在相应的 WebLogic Server 上为 SSL 协议配置端口。 可在两个级别设置此参数:在主服务器的配置中和虚拟主机的配置中(如果已定义了任何虚拟主机)。如果在虚拟主机的配置中未替换 SSL 配置,则虚拟主机的配置会从主服务器的配置继承该设置。 | ||
文件的名称,该文件包含插件的可信证书颁发机构的数字证书。在 SecureProxy 参数设置为 ON 的情况下,此参数为必需。 | ||
确定插件要连接到的主机名是否必须与代理插件要连接到的 WebLogic Server 的数字证书中的“主题识别名”字段匹配。 当在插件中指定 SecureProxy=ON 和 RequireSSLHostMatch=true 时,在 ListenAddress 属性中指定的值应与在证书中指定的主机名值完全匹配。 当使用 WebLogic Server 的 ExternalDNSName 属性并在插件中设置 SecureProxy=ON 和 RequireSSLHostMatch=true 时,在 ExternalDNSName 属性中指定的值应与在证书中指定的主机名值完全匹配。 | ||
标识对等方数字证书的“主题识别名”中的哪个字段要用于执行主机匹配比较的 ASN.1 对象 ID(Object ID,简称 OID)。此参数的默认值与“主题识别名”的 CommonName 字段相对应。常见的 OID 值为: | ||
Web 应用程序中的属性文件,定义在通过一般代理 Servlet 使用双向 SSL 时访问密钥库和私钥别名所需的加密密码。文件内容类似如下所示: KeyStorePassword={3DES}i4+50LCKenQO8BBvlsXTrg/=/= 要对密码加密,必须使用 weblogic.security.Encrypt 命令行实用工具。有关 Encrypt 实用工具以及 CertGen 和der2pem 实用工具的详细信息,请参阅“WebLogic Server 命令参考”中的使用 WebLogic Server Java 实用工具。 |