ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     管理者ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic クラスタ へのリクエストのプロキシ

 

以下の節では、WebLogic Server のクラスタに HTTP リクエストをプロキシする方法について説明します。

 


概要

WebLogic Server に付属する HttpClusterServlet は、HTTP サーバとして機能する WebLogic Server からのリクエストを、WebLogic Server クラスタ内のサーバ インスタンスにプロキシします。HttpClusterServlet は、プロキシされる HTTP リクエストに対するロード バランシングとフェイルオーバを提供します。サーブレットとクラスタの詳細については、「HTTP セッション ステートのレプリケーションについて」を参照してください。

クラスタではなく単一のサーバ インスタンスにリクエストをプロキシするには、HttpProxyServlet を使用します。詳細については、 別の HTTP サーバへのリクエストのプロキシを参照してください。

 


HttpClusterServlet の新しいバージョン

WebLogic Server 6.1 SP02 には、HttpClusterServlet の新しいバージョンが付属しています。古いバージョンもまだ使用できますが、非推奨となっており将来のリリースからは削除される予定です。旧バージョンと新バージョンの相違点については、このマニュアルで説明します。

WebLogic Server 6.1 SP02 の HttpClusterServlet は、以下の機能を備えています。

 


HttpClusterServlet の設定

HTTP クラスタ サーブレットを使用するには、次の手順に従って、プロキシ サーバ マシン上でデフォルト Web アプリケーションとしてそのサーブレットをコンフィグレーションします。Web アプリケーションの基本については、『Web アプリケーションのアセンブルとコンフィグレーション』の「Web アプリケーションの概要」を参照してください。

  1. まだ行っていない場合、HTTP クラスタ サーブレットのホストになる、クラスタ外の独立した管理対象サーバをコンフィグレーションします。

  2. まだ行っていない場合、Web アプリケーション用のディレクトリを作成し、その中に WEB-INF サブディレクトリを作成します。詳細については、『Web アプリケーションのアセンブルとコンフィグレーション』の「ディレクトリ構造」を参照してください。

  3. Web アプリケーションの WEB-INF ディレクトリ内に、サーブレット用の web.xml デプロイメント記述子ファイルを作成します。任意のテキスト エディタを使用します。 デプロイメント記述子のサンプルには、プロキシ サーブレットの新しいバージョンと非推奨になったバージョンのそれぞれに対応するデプロイメント記述子のサンプルを掲載しています。web.xml ファイルの記述方法の詳細については、『Web アプリケーションのアセンブルとコンフィグレーション』の「Web アプリケーションのデプロイメント記述子の記述」を参照してください。

    1. web.xml<servlet> 要素で、サーブレットの名前とクラスを定義します。サーブレットのバージョンが新旧どちらの場合でも、サーブレット名は HttpClusterServlet です。

      新しいサーブレットのクラスは weblogic.servlet.proxy.HttpClusterServlet です。非推奨のサーブレットのクラスは weblogic.servlet.internal.HttpClusterServlet です。

    2. web.xml<servlet> 要素で、プロキシ サーブレットによるリクエスト転送先のクラスタ内のサーバ インスタンスを定義します。

      HttpClusterServlet の新しいバージョンを使用する場合は、WebLogicCluster パラメータを定義します。

      HttpClusterServlet の非推奨バージョンを使用する場合は、serverlist パラメータを定義します。

    3. <servlet-mapping> 要素を作成して、プロキシ サーブレットがクラスタに転送するリクエストを指定します。特定のファイル拡張子(*.jsp*.html など)を指定するには、<url-pattern> 要素を使用します。各パターンは個別の <servlet-mapping> 要素内で定義します。

      <url-pattern> を「/」に設定すると、WebLogic Server によって解決できないすべてのリクエストをリモート サーバ インスタンスにプロキシすることができます。そのように設定する場合、拡張子が *.jsp*.htm、および *.html のファイルをプロキシするには、これらの拡張子も個別にマップしなければなりません。サンプルについては、 HttpClusterServlet(SP02)用の web.xmlを参照してください。

    4. 『管理者ガイド』の「Web サーバ プラグインのパラメータ」で説明されているように、必要に応じて適切な追加パラメータを定義します。 構文で説明されている構文に従います。

  4. Administration Console で、プロキシ サーバ マシン上の管理対象サーバに対するデフォルト Web アプリケーションとしてサーブレットを割り当てます。手順については、 デフォルト Web アプリケーションの指定を参照してください。

  5. Administration Console で、プロキシ サーバ マシン上の管理対象サーバにサーブレットをデプロイします。手順については、 Web アプリケーション コンポーネントのデプロイメントを参照してください。

 


デプロイメント記述子のサンプル

この節では、新しいバージョンと非推奨バージョンの HttpClusterServlet で使用するデプロイメント記述子ファイル(web.xml)のサンプルを示します。

web.xml の各サンプルでは、HTTP クラスタ サーブレットの場所と動作を指定する一連のパラメータを定義します。

以下は両方のバージョンのサーブレットに共通する内容です。

HttpClusterServlet(SP02)用の web.xml

次に示すのは、WebLogic Server 6.1 SP02 以降に付属する HttpClusterServlet 用の web.xml のサンプルです。パラメータ定義については、 プロキシ サーブレットのデプロイメント パラメータを参照してください。

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

<servlet>
  <servlet-name>HttpClusterServlet</servlet-name>
    <servlet-class>
      weblogic.servlet.proxy.HttpClusterServlet
    </servlet-class>

  <init-param>
    <param-name>WebLogicCluster</param-name>
    <param-value>
       myserver1:7736|myserver2:7736|myserver:7736
    </param-value>
  </init-param>

</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-mapping>
  <servlet-name>HttpClusterServlet</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>HttpClusterServlet</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

</web-app>

非推奨の HttpClusterServlet 用の web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.
//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

<servlet>
  <servlet-name>HttpClusterServlet</servlet-name>
    <servlet-class>
      weblogic.servlet.internal.HttpClusterServlet
    </servlet-class>

  <init-param>
    <param-name>defaultServers</param-name>
    <param-value>
       myserver1:7736:7737|myserver2:7736:7737|myserver:7736:7737
    </param-value>
  </init-param>

</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-mapping>
  <servlet-name>HttpClusterServlet</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>HttpClusterServlet</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

</web-app>

プロキシ サーブレットのデプロイメント パラメータ

表 10-1 に、現行バージョンのプロキシ サーブレットの動作をコンフィグレーションするための主なパラメータの一覧を示します。 表 10-2 には、非推奨になったプロキシ サーブレット用のパラメータの一覧を示します。

WebLogic Server 6.1 SP02 以前では、プロキシ サーブレットの動作はそのサーブレット独自のパラメータ セットで設定されていました。SP02 以降では、(Apache、Microsoft、および Netscape の各 Web サーバ用の)WebLogic Server プラグインの設定に使用するパラメータの名前に合わせて、プロキシ サーブレット用のパラメータ群の名前が変更されています。プロキシ サーブレット、およびサードパーティ製 Web サーバ用プラグインを設定するための全パラメータの一覧については、 Web サーバ プラグインのパラメータを参照してください。

表 10-1 の「対応する非推奨パラメータ」列には、以前のバージョンのプロキシ サーブレットで使用されていた(非推奨になった)パラメータを示しています。

構文

パラメータを指定する際の構文と、その中でパラメータが指定されるファイルは、プロキシ サーブレットとプラグインとでは異なり、またプラグインの種類によっても異なります。

プロキシ サーブレットについては、web.xml 内で、対象サーブレットに対応する <servlet> 要素内の <init-param> 要素内にパラメータを定義します。次に例を示します。

<init-param>
<param-name>
ParameterName</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

表10-1 WebLogic Server 6.1 SP02 の プロキシ サーブレットのデプロイメント パラメータ

WebLogic Server 6.1 SP02 以降のパラメータ

説明

対応する非推奨パラメータ

WebLogicCluster

<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>WLS1.com:
port|WLS2.com:port
</param-value>

WLS1.comWLS2.com はクラスタ内のサーバのホスト名、port はホストが HTTP リクエストをリスンするポート。-プラグインと WebLogic Server の間で SSL を使用する場合、ポート番号を SSL リスン ポート(「リスン ポートのコンフィグレーション」を参照)の番号に、SecureProxy パラメータを ON にそれぞれ設定する。

defaultServers

SecureProxy

<init-param>
<param-name>SecureProxy</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

有効な値は ON と OFF。

プラグインと WebLogic Server の間で SSL を使用する場合、ポート番号を SSL リスン ポートの番号に、SecureProxy パラメータを ON にそれぞれ設定する。

secureProxy

DebugConfigInfo

<init-param>
<param-name>Debug</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

有効な値は ON と OFF。

ON に設定すると、任意のリクエストにリクエスト パラメータ ?__WebLogicBridgeConfig を追加することによって、HttpClusterServlet に対してクエリを実行しデバッグ情報を取得できるようになる(? の後にはアンダースコア(_)が 2 つある)。セキュリティ上の理由から、プロダクション環境では DebugConfigInfo パラメータを OFF に設定することが推奨される。

DebugConfig
Info

ConnectRetry
Secs

サーブレットがサーバ インスタンスへの接続試行の間に待機する秒数。ConnectTimeoutSecs よりも小さい値を設定する。

クライアントに「HTTP 503/Service Unavailable」の応答を返すまでにサーブレットが接続を試行する回数は、ConnectTimeoutSecsConnectRetrySecs で割って算出される。

構文は次のとおり。

<init-param>
<param-name>ConnectRetrySecs</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

numOfRetries

ConnectTimeout
Secs

サーブレットがサーバ インスタンスへの接続試行を中止するまでの秒数。ConnectRetrySecs よりも大きい値を設定する。

接続に成功する前に ConnectTimeoutSecs の秒数が経過すると、「HTTP 503/Service Unavailable」の応答がクライアントに送られる。

構文は次のとおり。

<init-param>
<param-name>ConnectTimeoutSecs</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

connection
Timeout

PathTrim

リクエストがクラスタに転送される前に、プラグインによって元の URL の先頭部分から取り除かれる文字列。

構文は次のとおり。

<init-param>
<param-name>PathTrim</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

次の URL が解析のためにプラグインに渡されるとする。

http://myWeb.server.com/weblogic/foo

また、PathTrim が次の値に設定されているとする。

/weblogic

WebLogic Server に転送される URL は次のとおり。

http://myWeb.server.com:7001/foo

pathTrim

TrimExt

URL の最後から取り除かれるファイル拡張子。

構文は次のとおり。

<init-param>
<param-name>TrimExt</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

trimExt

clientCertProxy

WL-Proxy-Client-Cert ヘッダーのクライアント証明書を信頼するように指定する。

有効な値は true または false。デフォルト値は false。

この設定は、ユーザ認証がプロキシ サーバ上で実行される場合に役立つ。clientCertProxy を true に設定すると、プロキシ サーバは特殊なヘッダーである WL-Proxy-Client-Cert 内でクラスタに証明書を渡すようになる。

WL-Proxy-Client-Cert ヘッダーは、WebLogic Server に直接アクセスする任意のクライアントによって使用できる。WebLogic Server はヘッダーから証明書情報を受け取り、情報が安全な発信元(プラグイン)からのものであることを信頼し、その情報を使用してユーザを認証する。

clientCertProxy を true に設定する場合、プラグインが動作しているマシン以外からの接続を受け付けないように接続フィルタを設定する必要がある。『WebLogic Security プログラマーズ ガイド』の「ネットワーク接続のフィルタ処理」を参照。


PathPrepend

PathTrim の文字列が取り除かれた後、クラスタに URL を転送する前にサーブレットが元の URL の先頭に付加する文字列。

<init-param>
<param-name>PathPrepend</param-name>
<param-value>
ParameterValue</param-value>
</init-param>

pathPrepend

表10-2 非推奨のプロキシ サーブレット用パラメータ

パラメータ名

パラメータ値

デフォルト値

defaultServers

クラスタ内の管理対象サーバのホスト名と、そのサーバの通常のリスン ポートおよび SSL リスン ポートのリスト。ホストは | で区切られる。定義例は次のとおり。

host1:port:SSLport|
host2:port:SSLport

secureProxy パラメータを ON に設定すると、プロキシ サーバとクラスタ内のサーバの間で HTTPS ポート経由で行われる通信に SSL が使用される。

SSL ポートは secureProxyOFF の場合でも定義しなければならない。

なし

secureProxy

ON/OFFON に設定した場合、HttpClusterServlet と WebLogic Server クラスタのメンバーの間で SSL が有効になる。

OFF

DebugConfigInfo

ON/OFFON に設定すると、任意のリクエストにリクエスト パラメータ ?__WebLogicBridgeConfig を追加することによって、HttpClusterServlet に対してクエリを実行しデバッグ情報を取得できるようになる(? の後にはアンダースコア(_)が 2 つある)。セキュリティ上の理由から、プロダクション環境では DebugConfigInfo パラメータを OFF に設定することが推奨される。

OFF

connectionTimeout

ソケットがデータのチャンクを読み込んでから次に読み込むまでの待ち時間(単位は秒)。タイムアウト時間が経過すると、java.io.InterruptedIOException が送出される。

0 = タイムアウト制限なし

numOfRetries

HttpClusterServlet が失敗した接続を再試行する回数。

5

pathTrim

元の URL の先頭部分から取り除かれる文字列。

なし

trimExt

元の URL の最後から取り除かれるファイル拡張子。

なし

pathPrepend

PathTrim の文字列が取り除かれた後、リクエストが WebLogic Server クラスタ メンバーに転送される前に元の URL の先頭に付加される文字列。

なし

 


コンフィグレーションの確認

HttpClusterServlet のコンフィグレーションが正しく機能することを確認するには、次の手順を実行します。

  1. web.xml で、DebugConfigInfo パラメータを ON に設定します。

  2. Web ブラウザで次の URL にアクセスします。

    http://myServer:port/placeholder.jsp?__WebLogicBridgeConfig

    myServer は、HttpClusterServlet が動作するプロキシ マシン上の管理対象サーバです。

    port は、 そのサーバ上で HTTP リクエストをリスンしているポート番号です。

    placeholder.jsp は、サーバ上に存在していないファイルです。

    プラグインは、コンフィグレーション情報と実行時の統計情報を収集し、ブラウザに情報を返します。詳細については DebugConfigInfoを参照してください。

 

back to top previous page next page