使用 WebLogic Server 的 Web 服务器插件

     上一页  下一页    在新窗口中打开目录     
在此处开始内容

将请求代理到其他 Web 服务器

以下部分描述如何将 HTTP 请求代理到其他 Web 服务器:

 


将请求代理到其他 Web 服务器的概述

将 WebLogic Server 作为主 Web 服务器使用时,可能还需要配置 WebLogic Server,以便将某些请求传递或代理到次级 Web 服务器,如 Netscape Enterprise Server、Apache 或 Microsoft Internet Information Server。所代理的任何请求都会重定向到特定 URL。您甚至可代理到其他计算机上的另一个 Web 服务器。您将根据传入请求的 URL 代理请求。

HttpProxyServlet(作为分发的一部分提供)获取 HTTP 请求,将其重定向到代理 URL,然后通过 WebLogic Server 将响应发送回对客户端浏览器。要使用 HttpProxyServlet,必须在 Web 应用程序中对其进行配置,然后在要重定向请求的 WebLogic Server 上部署该 Web 应用程序。

 


设置到次级 Web 服务器的代理

要设置到次级 HTTP 服务器的代理,请执行下列操作:

  1. 在 Web 应用程序部署描述符中注册 proxy Servlet(请参阅使用 ProxyServlet 的示例 web.xml)。该 Web 应用程序必须是要对请求进行响应的服务器实例的默认 Web 应用程序。代理 Servlet 的类名为 weblogic.servlet.proxy.HttpProxyServlet。有关详细信息,请参阅开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP
  2. 通过一个 redirectURL<param-name>和一个包含所代理请求应定向到的服务器 URL 的 <param-value>,定义 ProxyServlet的初始化参数。
  3. (可选)定义以下 <KeyStore> 初始化参数,以便通过您自己的标识证书和密钥使用双向 SSL。如果未在部署描述符中指定 <KeyStore>,则代理将采用单向 SSL。
    • <KeyStore> - Web 应用程序中的密钥库位置。
    • <KeyStoreType> - 密钥库类型。如果未对其进行定义,则将改用默认类型。
    • <PrivateKeyAlias> - 私钥别名。
    • <KeyStorePasswordProperties> - Web 应用程序中的属性文件,定义用于访问密钥库和私钥别名的加密密码。文件内容类似如下所示:
    • KeyStorePassword={3DES}i4+50LCKenQO8BBvlsXTrg\=\=
      PrivateKeyPassword={3DES}a4TcG4mtVVBRKtZwH3p7yA\=\=

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

  4. ProxyServlet 映射到 <url-pattern>。特别是要映射希望代理的文件的扩展名,如 *.jsp或 *.html。在 web.xml Web 应用程序部署描述符中使用 <servlet-mapping> 元素。
  5. 如果将 <url-pattern> 设置为“/”,则 WebLogic Server 不能解析的任何请求都会代理到远程服务器。但是,如果要代理以下扩展名结尾的文件,还必须专门映射这些扩展名:*.jsp*.html*.html

  6. 在重定向传入请求的 WebLogic Server 实例上部署 Web 应用程序。

 


代理 Servlet 的示例部署描述符

下面是使用代理 Servlet 的 Web 应用程序部署描述符的一个示例。

清单 6-1 使用 ProxyServlet 的示例 web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
<servlet>
  <servlet-name>ProxyServlet</servlet-name>
  <servlet-class>weblogic.servlet.proxy.HttpProxyServlet</servlet-class>
  <init-param>
    <param-name>redirectURL</param-name>
    <param-value>server:port</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>ProxyServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>ProxyServlet</servlet-name>
  <url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>ProxyServlet</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>ProxyServlet</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>

  返回顶部       上一页  下一页