|
以下の節では、別の Web サーバに HTTP リクエストをプロキシする方法について説明します。
WebLogic Server をプライマリ Web サーバとして使用する場合、特定のリクエストをセカンダリ Web サーバ (Netscape Enterprise Server、Apache、Microsoft Internet Information Server など) に引き渡す (プロキシする) ように WebLogic Server をコンフィグレーションする必要があることもあります。プロキシされるリクエストはすべて、特定の URL にリダイレクトされます。リクエストは、別のマシン上の別の Web サーバにプロキシすることもできます。プロキシは、受信するリクエストの URL に基づいて行います。
HttpProxyServlet
(配布キットの一部として提供) は、WebLogic Server を介して、HTTP リクエストを取得し、プロキシ URL にリダイレクトして、その応答をクライアントのブラウザに送信します。HttpProxyServlet
を使用するには、Web アプリケーションでそれをコンフィグレーションして、リクエストをリダイレクトする WebLogic Server にその Web アプリケーションをデプロイします。
セカンダリ HTTP サーバのプロキシを設定するには、次の手順に従います。
プロキシ
サーブレットを Web アプリケーション デプロイメント記述子に登録します (「ProxyServlet と共に使用する web.xml のサンプル」を参照)
。Web アプリケーションは、リクエストに応答するサーバ インスタンスのデフォルト Web アプリケーションでなければなりません。プロキシ サーブレットのクラス名は、weblogic.servlet.proxy.HttpProxyServlet
です。詳細については、『
WebLogic Server Web アプリケーション、サーブレット、JSP の開発』を参照してください。<param-name>
に redirectURL
を指定し、<param-value>
にプロキシされるリクエストのリダイレクト先サーバの URL を指定して、ProxyServlet
の初期化パラメータを定義します。<KeyStore>
初期化パラメータを定義します。デプロイメント記述子に <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 ユーティリティの使い方」を参照してください。
ProxyServlet
を <url-pattern>
にマップします。特に、プロキシするファイルの拡張子 (*.jsp
、*.html
など) をマップします。Web アプリケーション デプロイメント記述子 web.xml
で <servlet-mapping>
要素を使用します。
<url-pattern>
を「/
」に設定した場合、WebLogic Server によって解決できないリクエストはすべてリモート サーバにプロキシされます。しかし、拡張子が *.jsp
、*.htm
、および *.html
のファイルをプロキシする場合、これらの拡張子もマップしなければなりません。
次に、プロキシ サーブレットを使用するための Web アプリケーション デプロイメント記述子のサンプルを示します。
<!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>