Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー・プラグインの使い方 11g リリース1(10.3.4) B61008-02 |
|
前 |
次 |
次の項では、別のWebサーバーにHTTPリクエストをプロキシする方法について説明します。
WebLogic ServerをプライマリWebサーバーとして使用する場合、特定のリクエストをセカンダリWebサーバー(ApacheまたはMicrosoft Internet Information Serverなど)に引き渡す(プロキシする)ようにWebLogic Serverを構成する必要がある場合もあります。プロキシされたリクエストはすべて、特定のURLにリダイレクトされます。リクエストは、別のマシン上の別のWebサーバーにプロキシすることもできます。リクエストのプロキシは、受信するリクエストのURLに基づいて行います。
HttpProxyServlet(配布キットの一部として提供)は、HTTPリクエストを取得し、プロキシURLにリダイレクトして、WebLogic Serverを介してそのレスポンスをクライアントのブラウザに送信します。HttpProxyServletを使用するには、Webアプリケーションでそれを構成して、リクエストをリダイレクトするWebLogic ServerにそのWebアプリケーションをデプロイします。
セカンダリHTTPサーバーのプロキシを設定するには:
プロキシ・サーブレットをWebアプリケーション・デプロイメント記述子に登録します(例6-1「ProxyServletとともに使用するweb.xmlのサンプル」を参照)。Webアプリケーションは、リクエストに応答するサーバー・インスタンスのデフォルトWebアプリケーションである必要があります。プロキシ・サーブレットのクラス名は、weblogic.servlet.proxy.HttpProxyServlet
です。詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』を参照してください。
<param-name>
にredirectURL
を指定し、<param-value>
にプロキシされるリクエストのリダイレクト先サーバーのURLを指定して、ProxyServlet
の初期化パラメータを定義します。
ユーザー自身のID証明書とキーで双方向SSLを使用する場合は、必要に応じて次の<KeyStore>
初期化パラメータを定義します。デプロイメント記述子に<KeyStore>
が指定されていない場合、プロキシでは一方向SSLと見なされます。
<KeyStore>
- Webアプリケーションのキーストアの場所。
<KeyStoreType>
- キーストアのタイプ。定義されていない場合、デフォルトのタイプが使用されます。
<PrivateKeyAlias>
- 秘密鍵の別名。
<KeyStorePasswordProperties>
- Webアプリケーション内のプロパティ・ファイルで、キーストアおよび秘密鍵の別名にアクセスするための暗号化されたパスワードを定義します。このファイルは次のような内容を持ちます。
KeyStorePassword={3DES}i4+50LCKenQO8BBvlsXTrg\=\= PrivateKeyPassword={3DES}a4TcG4mtVVBRKtZwH3p7yA\=\=
パスワードを暗号化するには、weblogic.security.Encryptコマンド・ライン・ユーティリティを使用する必要があります。Encryptユーティリティや、CertGenおよびder2pemユーティリティの詳細は、『Oracle WebLogic Serverコマンド・リファレンス』のOracle WebLogic ServerJavaユーティリティの使用に関する項を参照してください。
ProxyServletを<url-pattern>にマップします。特に、プロキシするファイルの拡張子(*.jsp、*.htmlなど)をマップします。Webアプリケーション・デプロイメント記述子web.xmlで<servlet-mapping>
要素を使用します。
<url-pattern>
を「/」に設定した場合、WebLogic Serverによって解決できないリクエストはすべてリモート・サーバーにプロキシされます。ただし、拡張子が*.jsp、*.htm、および*.htmlのファイルをプロキシする場合、これらの拡張子もマップする必要があります。
受信するリクエストをリダイレクトするWebLogic ServerインスタンスにWebアプリケーションをデプロイします。
例6-1は、プロキシ・サーブレットを使用するための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>