ナビゲーションをスキップ

WebLogic Server における Web サーバ プラグインの使い方

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

Microsoft IIS プラグインのインストールとコンフィグレーション

以下の節では、Microsoft Internet Information Server プラグインをインストールしてコンフィグレーションする方法を説明します。

 


Microsoft Internet Information Server プラグインの概要

Microsoft Internet Information Server プラグインは Microsoft Internet Information Server (IIS) から WebLogic Server へリクエストをプロキシします。このプラグインは、WebLogic Server の動的な機能を必要とするリクエストを WebLogic Server が処理できるようにすることによって IIS を拡張します。

Microsoft Internet Information Server プラグインは、Internet Information Server (IIS) が HTML ページなどの静的ページを提供し、WebLogic Server が HTTP サーブレットまたは JavaServer Pages などの動的ページを提供する、という環境で使用します。WebLogic Server は、(別のホストの) 別のプロセスで動作している場合もあります。それでも、エンド ユーザ (ブラウザ) では、WebLogic Server に委託される HTTP リクエストは IIS から来ているものと認識されます。WebLogic クライアント/サーバ プロトコルの HTTP トンネリング機能もこのプラグインを介して動作するため、すべての WebLogic サービスへのアクセスを提供できます。

プラグインのコンフィグレーション ファイルで WebLogicHost および WebLogicPort パラメータを使用して、対象の WebLogic Server インスタンスを指定します。対象として WebLogic Server クラスタまたはクラスタ化されていないサーバのグループを指定するには、WebLogicCluster パラメータを使用します。 プラグイン パラメータの設定の詳細については、「Web サーバ プラグインのパラメータ」を参照してください。

接続プールとキープアライブ

Microsoft Internet Information Server プラグインでは、プラグインから WebLogic Server への接続のプールを使用することで、接続のパフォーマンスを向上させます。 このプラグインは、同じクライアントからの後続リクエストに同じ接続を再利用することで、WebLogic Server との間で HTTP 1.1 キープアライブ接続を実装します。接続が 30 秒 (またはユーザ定義の時間) を超えて非アクティブな場合、その接続は閉じます。クライアントとの接続は、それがタイムアウトになっていなければ、後で同じクライアントと接続するときに再利用できます。この機能は、必要に応じて無効にできます。詳細については、「KeepAliveEnabled」を参照してください。

 


動作確認

Microsoft Internet Information Server プラグインは Windows 上でサポートされます。プラグインはすべてのリリースのすべてのオペレーティング システムでサポートされているわけではありません。Microsoft Internet Information Server プラグインの特定のバージョンのプラットフォーム サポートについては、『WebLogic Platform 8.1 でサポート対象のコンフィグレーション』の「サポート対象の Web サーバ、ブラウザ、およびファイアウォール」を参照してください。

 


Microsoft Internet Information Server プラグインのインストールとコンフィグレーション

Microsoft Internet Information Server の WebLogic Server プラグイン モジュールは iisproxy.dll というダイナミック リンク ライブラリです。プラグインのコンフィグレーション パラメータを定義する名前と値の組み合わせを格納した iisproxy.ini ファイルによってサポートされています。

Microsoft Internet Information Server プラグインをインストールするには、次の手順に従います。

  1. WebLogic Server の WL_HOME/server/bin ディレクトリにある iisproxy.dll ファイルを IIS からアクセス可能なディレクトリにコピーします (WL_HOME は WebLogic Platform および WebLogic Server の最上位ディレクトリを表し、WebLogic Server のインストール ファイルが格納されています)。このディレクトリには、手順 4 で作成する iisproxy.ini ファイルも格納することをお勧めします。iisproxy.dll ファイル用のユーザのパーミッションを設定し、IIS を実行するユーザの名前を含めます。これはたとえば、iisproxy.dll ファイル上で右クリックしてパーミッションを選択し、IIS を実行する人物のユーザ名を追加するという方法で行えます。
  2. ファイル拡張子 (MIME タイプ) に基づくプロキシをコンフィグレーションする場合は、次に示す手順を行います (MIME タイプに基づくプロキシに加えて、またはそれに代わってパスに基づくプロキシもコンフィグレーションできます。手順 3 を参照)。
    1. [スタート] メニューから選択して、IIS Internet Service Manager を起動します。
    2. Service Manager の左側のパネルから、使用する IIS Web サイト (デフォルトは「Default Web Site」) を選択します。
    3. 図 : Service Manager


       
    4. ツールバーの再生ボタンをクリックして起動します。
    5. 左パネルで選択した Web サイトを右クリックし、[プロパティ] を選択して、Web サイトのプロパティを開きます。
    6. 図 : Service Manager 2


       
    7. [プロパティ] パネルで、[ホーム ディレクトリ] タブを選択し、[アプリケーションの設定] セクションの [構成] ボタンをクリックします。
    8. 図 : アプリケーションの設定


       
    9. [マッピング] タブで、[追加] ボタンをクリックします。
    10. 図 : マッピング


       
    11. [アプリケーションの拡張子マッピングの追加/編集] ダイアログ ボックスで、iisproxy.dll ファイルを参照します。
    12. 拡張子を、WebLogic Server にプロキシするファイルのタイプに設定します。
    13. IIS 6.0 以降のコンフィグレーションの場合、[ファイルの存在を確認する] チェック ボックスをオフにします。この確認の動作は以前のバージョンの IIS から変更されています。iisproxy.dll ファイルの存在を確認するという以前の動作は、プロキシからリクエストされたファイルが Web サーバのルート ディレクトリに存在するかどうかを確認するという動作になりました。この確認でファイルが見つからなかった場合、iisproxy.dll ファイルは WebLogic Server にリクエストをプロキシできません。
    14. [ディレクトリ セキュリティ] タブで、安全なインストールを作成するために、必要に応じて [メソッド除外] を設定します。
    15. 完了したら、[OK] ボタンをクリックしてコンフィグレーションを保存します。
    16. ファイル タイプのコンフィグレーションが完了したら、[OK] ボタンをクリックしてプロパティ パネルを閉じます。
    17. 注意 : URL のサーバとポートの後ろに追加されたパス情報は、WebLogic Server にそのまま渡されます。たとえば、次の URL で IIS にファイルを要求した場合、

      http://myiis.com/jspfiles/myfile.jsp

      そのリクエストは次のような URL で WebLogic Server にプロキシされます。

      http://mywebLogic:7001/jspfiles/myfile.jsp

      注意 : アウトオブプロセス エラーを避けるため、[すべての不明な ISAPI 拡張] チェック ボックスをオフにしないでください。

  3. パスを基準にしたプロキシをコンフィグレーションする場合は、次に示す手順を行います。ファイル タイプを基準にしたプロキシに加えて、iisproxy.ini ファイルで追加パラメータを指定すれば、パスに基づいてファイルを提供するように Microsoft Internet Information Server プラグインをコンフィグレーションできます。パスを基準としたプロキシは、MIME タイプを基準としたプロキシに優先します。
  4. また、パスを使用して IIS で定義されている複数の Web サイトをプロキシすることもできます。詳細については、「複数の仮想 Web サイトから WebLogic Server へのリクエストのプロキシ」を参照してください。

    パスによるプロキシをコンフィグレーションするには、次の手順に従います。

    1. [スタート] メニューから選択して、IIS Internet Service Manager を起動します。
    2. iisforward.dll ファイルを iisproxy.dll ファイルと同じディレクトリに置き、iisforward.dll ファイルをフィルタ サービスとして IIS に追加します (Web サイトの [プロパティ] パネルで、[ISAPI フィルタ] タブの追加をクリックして iisforward dll を追加します)。iisforward.dll ファイル用のユーザのパーミッションを設定し、IIS を実行するユーザの名前を含めます。これはたとえば、iisforward.dll ファイル上で右クリックしてパーミッションを選択し、IIS を実行する人物のユーザ名を追加するという方法で行えます。
    3. IIS において iisproxy.dll で処理される特殊なファイル タイプとして .wlforward を登録します。
    4. iisproxy.iniWlForwardPath プロパティを定義します。WlForwardPath では、たとえば WlForwardPath=/weblogic のように WebLogic Server にプロキシするパスを定義します。
    5. PathTrim パラメータを設定して、必要に応じて WlForwardPath を削除します。次に例を示します。
    6. WlForwardPath=/weblogic
      PathTrim=/weblogic

      この場合は、IIS から WebLogic Server へのリクエストが削除されます。したがって、/weblogic/session/session に変更されます。

    7. パス情報が含まれていない (ホスト名しか含まれていない) リクエストが必要な場合は、DefaultFileName パラメータを、リクエストがプロキシされる Web アプリケーションのウェルカム ページの名前に設定します。このパラメータの値は、URL に追加されます。
    8. アプリケーションをデバッグする必要がある場合は、iisproxy.iniDebug=ON パラメータを設定します。デバッグに利用できるプラグインのアクティビティのログを記録した c:\tmp\iisforward.log が生成されます。
  5. WebLogic Server で、iisproxy.ini ファイルを作成します。
  6. iisproxy.ini ファイルには、プラグインのコンフィグレーション パラメータを定義する名前と値の組み合わせを格納します。パラメータのリストについては、「Web サーバ プラグインの一般的なパラメータ」を参照してください。

    この節の iisproxy.ini ファイルの例 (「3-9 ページの iisproxy.ini ファイルのサンプル 」) を、必要な iisproxy.ini ファイルのテンプレートとして使用します。

    注意 : パラメータの変更は、コントロール パネルの [サービス] で「IIS Admin Service」を再起動するまで有効にはなりません。

    BEA では、iisproxy.ini ファイルを iisproxy.dll ファイルと同じディレクトリに配置することをお勧めします。他のディレクトリに配置した場合、iisproxy.ini は以下のディレクトリを以下の順序で検索されます。

    1. iisproxy.dll と同じディレクトリ。
    2. Windows レジストリで参照されている最新バージョンの WebLogic Server のホーム ディレクトリ。
    3. ホーム ディレクトリで iisproxy.ini ファイルが見つからない場合、WebLogic Server は、Windows レジストリで WebLogic Server の旧バージョンを調べ、古いインストール環境のホーム ディレクトリで iisproxy.ini ファイルを探します。

    4. c:\weblogic ディレクトリ (存在する場合)。
  7. Microsoft Internet Information Server プラグインがリクエストをプロキシする WebLogic Server のホストとポート番号を定義します。コンフィグレーションに応じて、以下の 2 通りの方法でホストとポートを定義できます。
  8. 必要に応じて、パスによるプロキシのコンフィグレーション手順 (上の手順 3) に従って HTTP トンネリングを有効にします。ただし、HTTP トンネリング リクエストを処理させる WebLogic Server ホスト名と WebLogic Server ポート番号、または WebLogic クラスタの名前を指定します。
    1. weblogic.jar および T3 プロトコルを使用している場合は、WlForwardPath を次の URL パターンに設定します。
	WlForwardPath=*/HTTPClnt*
    1. IIOP (WebLogic Server シン クライアント wlclient.jar が使用する唯一のプロトコル) を使用する場合、WlForwardPath の値を */iiop* に設定します。
	WlForwardPath=*/iiop*

PathTrim パラメータを使用する必要はありません。

  1. iisproxy.ini ファイルで追加パラメータを設定します。パラメータの詳細なリストについては、「Web サーバ プラグインの一般的なパラメータ」で参照できます。
  2. IIS から WebLogic Server にサーブレットをプロキシするが、パスを基準にしてプロキシしない場合は、「IIS から WebLogic Server へのサーブレットのプロキシ」を参照してください。
  3. 初期設定でインストールされているバージョンの IIS では、iisproxy.dll は許可されていません。 IIS Manager コンソールを使用して、プラグインを有効にしてください。
    1. IIS Manager コンソールを起動します。
    2. [Web サービス拡張] を選択します。
    3. [すべての不明な ISAPI 拡張] を [許可] に設定します。

注意 : 手順 9 を実行するのは、IIS 6.0 をコンフィグレーションしている場合のみです。

 


複数の仮想 Web サイトから WebLogic Server へのリクエストのプロキシ

複数の Web サイト (IIS の仮想ディレクトリとして定義) からリクエストを WebLogic Server にプロキシするには、次の手順に従います。

  1. 仮想ディレクトリ用に新しいディレクトリを作成します。このディレクトリには、プロキシを定義するための dll および ini ファイルが格納されます。
  2. 手順 1 で作成したディレクトリに iisforward.dll をコピーします。
  3. 各 Web サイトの iisforward.dll を IIS に登録します。
  4. iisforward.ini というファイルを作成します。このファイルは iisforward.dll と同じディレクトリに配置します。このファイルには、IIS に定義されている仮想 Web サイトごとに次のエントリを格納する必要があります。
  5. vhostN=websiteName:port
    websiteName
    :port=dll_directory/iisproxy.ini

    各要素の説明は次のとおりです。

    次に例を示します。

    vhost1=strawberry.com:7001
    strawberry.com:7001=c:\strawberry\iisproxy.ini
    vhost2=blueberry.com:7001
    blueberry.com:7001=c:\blueberry\iisproxy.ini
    ...
  6. 手順 4 の説明に従って、仮想 Web サイトの iisproxy.ini ファイルを作成します。この iispoxy.ini ファイルは、手順 1 で作成したディレクトリにコピーします。
  7. 手順 1 で作成したディレクトリに iisproxy.dll をコピーします。
  8. IIS で、[アプリケーション保護] オプションの値を [高 (分離プロセス)] に設定します。[アプリケーション保護] オプションを [中 (プール)] に設定すると、最初の Web サイトとして登録された iisproxy.dll が常に呼び出されます。この場合、すべてのリクエストは、最初の Web サイトの iisproxy.ini で定義された同じ WLS インスタンスにプロキシされます。

iisproxy.ini ファイルのサンプル

次に、クラスタ化されていない 1 つの WebLogic Server で使用するサンプル iisproxy.ini ファイルを示します。先頭に「#」が付いた行はコメントです。

# このファイルでは、IIS/WebLogic プラグイン用の
# 初期化パラメータの名前と値の組み合わせを指定する
WebLogicHost=localhost
WebLogicPort=7001
ConnectTimeoutSecs=20
ConnectRetrySecs=2

次に、クラスタ化された WebLogic Server で使用するサンプル iisproxy.ini ファイルを示します。先頭に「#」が付いた行はコメントです。

# このファイルでは、IIS/WebLogic プラグイン用の
# 初期化パラメータの名前と値の組み合わせを指定する
WebLogicCluster=myweblogic.com:7001,yourweblogic.com:7001
ConnectTimeoutSecs=20
ConnectRetrySecs=2

注意 : プラグインと WebLogic Server の間で SSL を使用する場合は、SSL リスン ポートとしてポート番号を定義する必要があります。

 


境界認証の設定

Microsoft Internet Information Server プラグインを介してアクセスされる WebLogic Server アプリケーションを保護するには、境界認証を使用します。

WebLogic ID アサーション プロバイダは、WebLogic Server アプリケーションにアクセスする外部システム (Microsoft Internet Information Server プラグインを介して WebLogic Server アプリケーションにアクセスするユーザを含む) のトークンを認証します。次のように、プラグインを保護する ID アサーション プロバイダを作成します。

  1. WebLogic Server アプリケーションに対してカスタム ID アサーション プロバイダを作成します。WebLogic Server のセキュリティ プロバイダの開発方法については、「カスタム ID アサーション プロバイダの開発方法」を参照してください。
  2. 「Cert」トークン タイプをサポートするようにカスタム ID アサーション プロバイダをコンフィグレーションし、Cert をアクティブなトークン タイプにします。WebLogic Server のセキュリティ プロバイダの開発方法については、「新しいトークン タイプの作成方法」を参照してください。
  3. Web アプリケーションの web.xml デプロイメント記述子ファイルで clientCertProxy 属性を True に設定します。クラスタを使用する場合は、Administration Console の [クラスタ|コンフィグレーション|全般] タブで、クラスタ全体に対して Client Cert ProxyEnabled 属性を true に設定することもできます。『WebLogic Server Web アプリケーションの開発』の「context-param」を参照してください。
  4. clientCertProxy を設定したら、接続フィルタを使用して、Microsoft Internet Information Server プラグインが動作しているマシンからの接続のみを WebLogic Server が受け入れるようにします。『WebLogic Security プログラマーズ ガイド』の「ネットワーク接続フィルタの使い方」を参照してください。

ID アサーション プロバイダの詳細については、『WebLogic Security サービスの開発』の「ID アサーション プロバイダ」を参照してください。

 


Microsoft Internet Information Server プラグインでの SSL の使用

セキュア ソケット レイヤ (SSL) プロトコルを使用すると、WebLogic Server と Microsoft Internet Information Server プラグインの間で接続を保護できます。SSL プロトコルは、Microsoft Internet Information Server プラグインと WebLogic Server の間でやり取りされるデータに機密性と整合性をもたらします。

Microsoft Internet Information Server プラグインは、SSL プロトコルを使用してプロキシ プラグインと Microsoft Internet Information Server の間の接続が保護されるかどうかを、転送プロトコル (http または https) では判断しません。Microsoft Internet Information Server プラグインで SSL プロトコルを使用するには、プロキシされるリクエストを受け取る WebLogic Server で、SSL プロトコルを使用するようにコンフィグレーションする必要があります。Microsoft Internet Information Server プラグインでは、セキュアな SSL 通信を使用するようにコンフィグレーションされた WebLogic Server 上のポートを使用して Microsoft Internet Information Server と通信します。

Microsoft Internet Information Server プラグインと WebLogic Server の間で SSL プロトコルを使用するには、次の手順を行います。

  1. SSL 向けに WebLogic Server をコンフィグレーションします。 詳細については、「SSL のコンフィグレーション」を参照してください。
  2. WebLogic Server の SSL リスン ポートをコンフィグレーションします。詳細については、「SSL のコンフィグレーション」を参照してください。
  3. iisproxy.ini ファイルの WebLogicPort パラメータを、手順 2 でコンフィグレーションしたリスン ポートに設定します。
  4. iisproxy.ini ファイルの SecureProxy パラメータを ON に設定します。
  5. プラグインと WebLogic Server の間で SSL を使用するには、Web サーバ プラグインで信頼性のある認証局ファイルが必要になります。Sun Microsystems の keytool ユーティリティを使用して、BEA_HOME/weblogic81/server/lib にある DemoTrust.jks キーストア ファイルから信頼性のある認証局ファイルをエクスポートします。
    1. wlsdemoca ファイルを抽出するには、たとえば次のようなコマンドを使用します。
    2. keytool -export -file trustedcafile.der -keystore DemoTrust.jks -alias wlsdemoca

      キーストアから別の信頼された CA ファイルを取得するには、エイリアス名を変更します。

      キーストアの信頼された CA ファイルをすべて表示するには、次のコマンドを使用します。

      keytool -list -keystore DemoTrust.jks

      パスワードを要求されたら〔Enter〕を押します。

    3. 認証局ファイルを pem 形式に変換するには、次のコマンドを使用します。
    4. java utils.der2pem trustedcafile.der
  6. SSL 接続の情報を定義する追加パラメータを iisproxy.ini ファイルで設定します。パラメータの詳細なリストについては、「Web サーバ プラグインの SSL パラメータ」を参照してください。

次に例を示します。

WebLogicHost=myweblogic.com
WebLogicPort=7002
SecureProxy=ON

 


IIS から WebLogic Server へのサーブレットのプロキシ

iisforward.dll が ISS でフィルタ サービスとして登録されている場合は (Web サイトの [プロパティ|ISAPI|フィルタ] タブ)、サーブレットをパスに基づいてプロキシできます。その場合は、次の形式の URL でサーブレットを呼び出します。

http://IISserver/weblogic/myServlet

iisforward.dll がフィルタとして登録されていない場合にサーブレットをプロキシするには、ファイル タイプを基準としたサーブレットのプロキシをコンフィグレーションする必要があります。ファイル タイプでサーブレットをプロキシするには、次の操作を行います。

  1. WebLogic Server にリクエストをプロキシできるように IIS に任意のファイル タイプ (拡張子) を登録します。詳細については、「Microsoft Internet Information Server プラグインのインストールとコンフィグレーション」の手順 2 を参照してください。
  2. 適切な Web アプリケーションにサーブレットを登録します。サーブレット登録の詳細については、「サーブレットのコンフィグレーション」を参照してください。
  3. 次のような形式の URL でサーブレットを呼び出します。
  4. http://www.myserver.com/virtualName/anyfile.ext

    virtualName は、このサーブレットの Web アプリケーション デプロイメント記述子 (web.xml) の <servlet-mapping> 要素で定義された URL パターン、ext は WebLogic Server にプロキシするために IIS に登録されたファイル タイプ (拡張子) です。URL の anyfile の部分は、このコンテキストでは無視されます。

    注意 :

 


インストールのテスト

Microsoft Internet Information Server プラグインをインストールしてコンフィグレーションした後は、次の手順に従ってデプロイメントとテストを行います。

  1. WebLogic Server と IIS が動作していることを確認します。
  2. JSP ファイルをデフォルト Web アプリケーションのドキュメント ルートに保存します。
  3. ブラウザを開き、次のように IIS + filename.jsp という形式の URL を設定します。
  4. http://myii.server.com/filename.jsp

    filename.jsp がブラウザに表示される場合は、プラグインが正常に機能しています。

 


接続エラーとクラスタのフェイルオーバ

WebLogic Server に接続するときに、Microsoft Internet Information Server プラグインは複数のコンフィグレーション パラメータを使用して WebLogic Server ホストへの接続の待ち時間と、接続確立後の応答の待ち時間を判断します。接続できないか、応答がない場合、このプラグインはクラスタ内の別の WebLogic Server に接続してリクエストを送信しようとします。接続が失敗するか、クラスタ内のどの WebLogic Server インスタンスからも応答がない場合は、エラー メッセージが送信されます。

図 3-1 は、プラグインがどのようにフェイルオーバを処理するのかを示しています。.

接続失敗の考えられる原因

接続リクエストに WebLogic Server ホストが応答できない場合は、ホスト マシンの問題やネットワークの問題など、サーバに障害があることが考えられます。

クラスタ内のすべての WebLogic Server インスタンスが応答できない場合は、WebLogic Server が動作していないことや、サーバのハング、データベースの問題など、アプリケーションに障害があることが考えられます。

クラスタ化されていないサーバでの接続エラー

WebLogic Server の単一のインスタンスまたはクラスタ化されていない複数のインスタンスを実行している場合、プラグインは WebLogicHost パラメータで定義されているサーバにのみ接続しようとします。その試行が失敗すると、HTTP 503 エラー メッセージが返されます。プラグインは、ConnectTimeoutSecs を超えるまで WebLogic Server への接続を試み続けます。

動的サーバ リスト

WebLogicCluster パラメータで WebLogic Server インスタンスのリストを指定すると、プラグインではクラスタ メンバー間でのロード バランシングの起点としてそのリストが使用されます。最初のリクエストがそれらのサーバの 1 つに転送された後に、クラスタ内のサーバの更新されたリストを格納する動的サーバ リストが返されます。更新されたリストではクラスタ内の新しいサーバが追加され、すでにクラスタから外れているか、リクエストに応答できなかったサーバが削除されます。このリストは、クラスタで変更が行われたときに HTTP 応答によって自動的に更新されます。

フェイルオーバ、クッキー、および HTTP セッション

リクエストがクッキー、POST データ、または URL エンコーディングを通じてセッション情報を格納している場合、そのセッション ID にはセッションが最初に確立された特定のサーバ (プライマリ サーバ) への参照と元のセッションがレプリケートされる追加サーバ (セカンダリ サーバ) への参照が含まれています。 クッキーが含まれているリクエストは、プライマリ サーバに接続しようとします。その試行が失敗すると、リクエストはセカンダリ サーバに転送されます。プライマリ サーバとセカンダリ サーバが両方とも失敗すると、セッションが失われて、プラグインは動的クラスタ リストの別のサーバにあらためて接続しようとします。詳細については、「図 3-1 接続のフェイルオーバ」を参照してください。

注意 : POST データが 64K を超える場合、プラグインは、セッション ID を取得するための POST データの解析を行いません。したがって、セッション ID を POST データに格納した場合、プラグインはリクエストを正しいプライマリまたはセカンダリ サーバにルーティングできないので、セッション データが失われる可能性があります。

図 3-1 接続のフェイルオーバ

接続のフェイルオーバ


 

注意 :

プラグインによって送出される HTTP エラー コードは、状況に応じて異なります。以下の状況では、HTTP エラー コード 500 が返されます。

一方、以下の状況では HTTP エラー コード 503 が返されます。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次