Weblogic教程

代理服务器 Proxy

为了将从客户端过来的请求,智能均衡的在集群各个服务器间合理分配,一般需要一 个前置的软件或硬件分发器,Proxy 是比较常用的一种机制。

代理服务的角色和作用

利用现有的硬件

如果您已经有一个 Web 服务器(Web Server,一般用于提供静态内容),您可以复用现 有的 Web 服务器,为部署在后端 WebLogic 上的应用请求提供动态的 HTTP 负载均衡和故障 恢复。

熟悉防火墙策略

使用 Web 服务器代理使您能够使用熟悉的防火墙政策,以确定您的 DMZ policy。 在一 般情况下,您可以继续在 DMZ 区域放置 Web 服务器,而不允许客户端直接连接到集群内的 WebLogic 服务器。

错误恢复

简单而言,failover 的意思是当一个执行项特定工作的应用组件/服务因为某种原因 而变得不可用时,一个该组件的拷贝/备份可以继续完成该任务。

WebLogic Server 使用标准的通讯技术和工具,比如:多播(Multicast),IP Sockets,和 JNDI(Java Naming and Directory Interface);来共享和维护集群中对象 的可用性信息。这些技术使得 WebLogic Server 可以检测对象在未完成其任务之前就停止 的错误,并调度另外一个对象的拷贝来完成剩余的任务。

关于一项工作完成状态(完成了哪些工作)的信息叫做状态。WebLogic Server 维护 状态信息的技术包括"会话复制"和"replica-aware 存根"。当一个特定的对象非正常终止 其工作时,复制技术激活该对象的一个拷贝,并从该对象停止处继续运行,并完成工作。负载均衡

负载均衡是在计算和网络环境中对任务的分配和互相通信。负载均衡可能出现在:

  • 有多个对象可以处理相同的任务

  • 有关于所有对象的位置和运行状态的信息

WebLogic Server 允许对象被集群(在多个服务器实例上部署),所以有多了对象可 以做同一工作。


代理服务器的类型

  • 基于软件的代理服务器可以是内部 WebLogic Servlet 或第三方应用程序。

  • 基于硬件的代理服务器通常是物理负载平衡器。


F5 硬件负载平衡器及其他

F5 BIG-IP LTM(本地流量管理器)是一台对流量和内容进行管理分配的设备。它提供 12 种灵活的算法将数据流有效地转发到它所连接的服务器集群。而从用户角度看到的只是 一台虚拟服务器。用户此时只需访问定义于 BIG-IP LTM 上的一台服务器,即虚拟服务器 (Virtual Server)。但他们的数据流却被 BIG-IP 灵活地均衡到所有的物理服务器。

BIG-IP LTM 可以通过多种负载均衡算法对流量进行分配,这些算法包括:

  • 轮询(RoundRobin)

  • 比率(Ratio)

  • 优先权(Priority)

  • 最少的连接方式(LeastConnection)

  • 最快模式(Fastest)

  • 观察模式(Observed)

  • 预测模式(Predictive)

  • 动态性能分配(DynamicRatio-APM)

  • 动态服务器补充(DynamicServerAct)

  • 服务质量(QoS)

  • 服务类型(ToS)

  • 规则模式

关于 F5 BIG-IP 的详细信息,请参考其官方文档。


代理服务器的配置

代理服务器的配置

1.  通过 WebLogic Wizard 来配置

用 Domain Configuration Wizard 创建新 WebLogic 域时可以对其进行配置。在向导 中创建集群后,将显示“Create HTTP Proxy Applications(创建 HTTP 代理应用程 序)”选项。未定位到集群的服务器都是 HTTP 代理服务器的候选对象。选择“CreateHTTP proxy for(为创建 HTTP 代理)”以及将承载此代理应用程 序的服务器。

2.  手动创建 WebLogic 代理服务器

首先在代理服务器的默认 Web 应用程序的 web.xml 文件中配置 HttpClusterServlet。 此文件位于 Web 应用程序目录的\WEB-INF 目录下。

要配置 HttpClusterServlet,请执行以下操作:

1).配置一个 WebLogic Server 实例,以其作为代理将请求转到 WebLogic Server 实例的 集群

A. 在管理控制台中创建服务器实例。

B. 将默认 Web 应用程序部署到此 WebLogic Server 实例。

2).在已部署到代理服务器上的默认 Web 应用程序的 web.xml 文件中注册 HttpClusterServlet。

HttpClusterServlet 的完整类名如下:

WLS 6.1: weblogic.servlet.internal.HttpClusterServlet
WLS 7.0, 8.1: weblogic.servlet.proxy.HttpClusterServlet

然后使用 web.xml 部署描述符中的元素为 HttpClusterServlet 定义适 当的初始化参数:

<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>
weblogic.servlet.proxy.HttpClusterServlet
</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>
serverA:7001:7002|serverB:7001:7002|serverC:7001:7002
</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
</servlet>

代理 Servlet 需要被定义为受管服务器的默认 Web 应用程序。这可以在 Web 应用程 序目录的\WEB-INF 目录下的 weblogic.xml 部署描述符中定义。Servlet 映射如下:

配置 Servlet 映射:

<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
…
</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 映射到<url-pattern>。具体而言,就是映射所需代理的文件的扩展 名,例如*.jsp。如果将<url-pattern> 设置为“/”,则任何代理服务器无法解析的请求 都将被发送到集群中的服务器。但是,如果您希望代理对*.jsp 类型文件的请求,您仍必 须专门映射该文件扩展名。

第三方代理服务器

如果您使用的是受支持的第三方 Web 服务器,而不是利用 WebLogic Server 做为 Web服务器,则需要设置一个代理插件。

以下是支持的第三方 Web 服务器类型:

  • Netscape Enterprise Server

  • Apache Web Server

  • Microsoft Internet Information Server

关注微信获取最新动态