BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

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

 Previous Next Contents Index PDF で侮ヲ  

Microsoft Internet Information Server (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 サービスへのアクセスを提供できます。

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

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

リクエストのプロキシ

このプラグインは、指定されたコンフィグレーションに基づいてリクエストを WebLogic Server にプロキシします。リクエストは、リクエストの URL または URL の一部に基づいてプロキシできます。この方法は、パスに基づくプロキシです。要求されたファイルの MIME タイプに基づいてリクエストをプロキシすることもできます (ファイル拡張子に基づくプロキシ)。さらに、前述の方法を組み合わせて利用することもできます。リクエストが両方の基準に一致する場合、そのリクエストはパスを基準にプロキシされます。リクエストの種類ごとに、プラグインの補足的な動作を定義する追加パラメータを指定することもできます。詳細については、Microsoft Internet Information Server プラグインのインストールとコンフィグレーションを参照してください。

 


動作確認

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

 


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

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

  1. WebLogic Server の WL_HOME/server/bin ディレクトリにある iisproxy.dll ファイルを IIS からアクセス可能なディレクトリにコピーします (WL_HOME は WebLogic Platform および WebLogic Server の最上位ディレクトリであり、WebLogic Server のインストール ファイルが格納される)。このディレクトリには、手順 7 で作成する iisproxy.ini ファイルも格納する必要があります。

  2. [Microsoft IIS Start] メニューから選択して、IIS Internet Service Manager を起動します。

  3. Service Manager の左側のパネルから、使用する Web サイト (デフォルトは「Default Web Site」) を選択します。


     

  4. ツールバーの再生ボタンをクリックして起動します。

  5. 左パネルの選択した Web サイトの上でマウスを右クリックし、Web サイトのプロパティを開きます。


     

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


     

  7. ファイル拡張子 (MIME タイプ) に基づくプロキシをコンフィグレーションする場合は、次に示す手順を行います (MIME タイプに基づくプロキシに加えて、またはそれに代わってパスに基づくプロキシもコンフィグレーションできる。手順 9. を参照)。

    1. [マッピング] タブで、[追加] ボタンをクリックしてファイル タイプを追加し、WebLogic Server にプロキシされるようにコンフィグレーションします。


       

    2. ダイアログ ボックスで、「iisproxy.dll」ファイルを探します。

    3. 拡張子を、WebLogic Server にプロキシするファイルのタイプに設定します。

    4. [ファイルの存在を確認する] チェック ボックスをオフにします。

    5. 安全なインストールを作成するために、必要に応じて [メソッド除外] を設定します。

    6. 完了したら、[OK] ボタンをクリックしてコンフィグレーションを保存します。WebLogic に対してプロキシを実行するファイル タイプごとにこの手順を繰り返します。

    7. ファイル タイプのコンフィグレーションが完了したら、[OK] ボタンをクリックしてプロパティ パネルを閉じます。

    注意: URL のサーバとポートの後ろに追加されたパス情報は、WebLogic Server にそのまま渡されます。たとえば、次の URL で IIS にファイルを要求した場合、

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

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

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

    注意: アウトオブプロセス エラーを防ぐために、[ISAPI アプリケーションをキャッシュする] チェックボックスの選択は解除しないでください。

  8. WebLogic Server で、iisproxy.ini ファイルを作成します。

    iisproxy.ini ファイルには、プラグインのコンフィグレーション パラメータを定義する名前と値の組み合わせを格納します。 パラメータのリストについては、Web サーバ プラグインの一般的なパラメータを参照してください。

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

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

    1. iisproxy.dll と同じディレクトリ。

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

    3. c:¥weblogic ディレクトリ (存在する場合)。

  9. パスを基準にしたプロキシをコンフィグレーションする場合は、次に示す手順を行います。ファイル タイプを基準にしたプロキシに加えて、iisproxy.ini ファイルで追加パラメータを指定すれば、パスに基づいてファイルを提供するように Microsoft Internet Information Server プラグインをコンフィグレーションできます。パスを基準としたプロキシは、MIME タイプを基準としたプロキシに優先します。

    また、パスを使用して IIS で定義されている複数の Web サイトをプロキシすることもできます。詳細については、複数の仮想 Web サイトから WebLogic Server へのリクエストのプロキシを参照してください。

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

    1. iisforward.dll ファイルを iisproxy.dll ファイルと同じディレクトリに配置し、iisforward.dll ファイルをフィルタ サービスとして IIS に追加します(Web サイトの [プロパティ] パネルで、[ISAPI フィルタ] タブの [追加] をクリックして iisforward dll を追加します)。

    2. iisproxy.dll で処理される特殊なファイル タイプとして wlforward を登録します。

    3. iisproxy.iniWlForwardPath プロパティを定義します。WlForwardPath では、次のように WebLogic Server にプロキシするパスを定義します。 WlForwardPath=/weblogic.

    4. PathTrim パラメータを設定して、必要に応じて WlForwardPath を削除します。次に例を示します。
      WlForwardPath=/weblogic
      PathTrim=/weblogic

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

    5. パス情報が含まれていない (ホスト名しか含まれていない) リクエストが必要な場合は、DefaultFileName パラメータを、リクエストがプロキシされる Web アプリケーションのウェルカム ページの名前に設定します。このパラメータの値は、URL に追加されます。

    6. アプリケーションをデバッグする必要がある場合は、iisproxy.iniDebug=ON パラメータを設定します。デバッグに利用できるプラグインのアクティビティのログを記録した c:¥tmp¥iisforward.log が生成されます。

  10. Microsoft Internet Information Server プラグインがリクエストをプロキシする WebLogic Server のホストとポート番号を定義します。コンフィグレーションに応じて、以下の 2 通りの方法でホストとポートを定義できます。

  11. 必要に応じて、パスによるプロキシのコンフィグレーション手順 (上の手順 9) に従って HTTP トンネリングを有効にします。ただし、HTTP トンネリング リクエストを処理させる WebLogic Server ホスト名と WebLogic Server ポート番号、または WebLogic クラスタの名前を指定します。
	WlForwardPath=*/HTTPClnt*

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

注意: HTTP トンネリングを使用する必要があるのは、アプレットを使用して IIS/NES 経由で WebLogic Server に接続し、t3 の代わりのプロトコルとして http を使用する場合です (たとえば、プロバイダ URL のプロトコルとして t3:// の代わりに http:// を使用する場合)。

  • iisproxy.ini ファイルで追加パラメータを設定します。パラメータの詳細なリストについては、Web サーバ プラグインの一般的なパラメータで参照できます。

  • IIS から WebLogic Server にサーブレットをプロキシするが、パスを基準にしてプロキシしない場合は、IIS から WebLogic Server へのサーブレットのプロキシを参照してください。
  •  


    複数の仮想 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 サイトごとに次のエントリを格納する必要があります。
      vhostN=websiteName:port
      websiteName
      :port=dll_directory/iisproxy.ini

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

    5. リクエストのプロキシ の手順 8.の説明に従って、仮想 Web サイトの iisproxy.ini ファイルを作成します。この iispoxy.ini ファイルは、手順 1 で作成したディレクトリにコピーします。

    6. 手順 1 で作成したディレクトリに iisproxy.dll をコピーします。

    7. 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 リスン ポートとしてポート番号を定義する必要があります。

     


    IIS を介した ACL の作成

    認可ヘッダが IIS によって渡されない場合、ACL は Microsoft Internet Information Server プラグインを介して機能しません。次の説明に基づいて、認可ヘッダが IIS によって渡されるようにします。

    基本認証を使用する場合、ユーザはローカルのログオン権限でログオンします。基本認証を使用するには、各ユーザにローカル ログオンのユーザ権利を与えます。ただし、基本認証でローカル ログオンを使用することで 2 つの問題が発生する可能性があります。

    コンソールの [ディレクトリ セキュリティ] タブで基本認証を有効にするには、[匿名アクセスを許可する] オプションをオンに、その他のオプションをすべてオフにします。

     


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

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

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

    SSL のコンフィグレーション

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

    1. SSL 向けに WebLogic Server をコンフィグレーションします。詳細については、「SL プロトコルのコンフィグレーション」を参照してください。

    2. WebLogic Server の SSL リスン ポートをコンフィグレーションします。詳細については、「SL プロトコルのコンフィグレーション」を参照してください。

    3. iisproxy.ini ファイルの WebLogicPort パラメータを、手順 2. でコンフィグレーションしたリスン ポートに設定します。

    4. iisproxy.ini ファイルの SecureProxy パラメータを ON に設定します。

    5. SSL 接続の情報を定義する追加パラメータを iisproxy.ini ファイルで設定します。パラメータの詳細なリストについては、Web サーバ プラグインの SSL パラメータを参照してください。

    次に例を示します。

    WebLogicHost=myweblogic.com
    WebLogicPort=7002
    SecureProxy=ON

    WL-Proxy-Client-Cert ヘッダの信頼の指定

    プラグインは WL-Proxy-Client-Cert ヘッダでユーザの ID 証明書をエンコードし、そのヘッダを WebLogic Server インスタンスに渡すことができます (「別の Web サーバへのリクエストのプロキシ」を参照)。 WebLogic Server インスタンスは、それがセキュアなソース (プラグイン) から来ているものと信頼し、ヘッダの証明書情報を使用してユーザを認証します。 以前の WebLogic Server のデフォルト動作では、WL-Proxy-Client-Cert ヘッダを常に信頼していました。 WebLogic Server 6.1 SP2 からは、WL-Proxy-Client-Cert ヘッダの信頼を明示的に定義する必要があります。 新しいパラメータ clientCertProxy を使用すると、証明書ヘッダを信頼するかどうか指定することができます。 セキュリティの強化には、WebLogic Server へのすべての接続を制限する接続フィルタを使用します。そうすることで、プラグインが動作しているマシンからの接続のみを WebLogic Server で受け容れることができます。

    clientCertProxy パラメータは、HTTPClusterServlet および Web アプリケーションに追加されています。

    HTTPClusterServlet では、このパラメータを次のように web.xml ファイルに追加します。

    <context-param>
            <param-name>clientCertProxy</param-name>
            <param-value>true</param-value>
    </context-param>

    Web アプリケーションでは、このパラメータを次のように web.xml ファイルに追加します。

    ServletRequestImpl context-param
    <context-param>
            <param-name>weblogic.httpd.clientCertProxy</param-name>
            <param-value>true</param-value>
    </context-param>

    このパラメータは、次のようにクラスタで使用することもできます。

    <Cluster ClusterAddress="127.0.0.1" Name="MyCluster"
            ClientCertProxyHeader="true"/>

     


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

    iisforward.dll がフィルタとして登録されていれば、パスを基準にしてサーブレットをプロキシできます。その場合は、次の形式の URL でサーブレットを呼び出します。

    http://IISserver/weblogic/myServlet

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

    1. WebLogic Server にリクエストをプロキシできるように IIS に任意のファイル タイプ (拡張子) を登録します。詳細については、Microsoft Internet Information Server プラグインのインストールとコンフィグレーション手順 7. を参照してください。

    2. 適切な Web アプリケーションにサーブレットを登録します。サーブレット登録の詳細については、「サーブレットのコンフィグレーション」を参照してください。

    3. 次のような形式の URL でサーブレットを呼び出します。

      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 を設定します。
      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 でのフェイルオーバ

    WebLogic Server が 1 つだけ動作している場合、プラグインは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 接続のフェイルオーバ


     

    *赤いループで許可される再試行の限度は、次の式で計算されます。
    ConnectTimeoutSecs ÷ ConnectRetrySecs.

     

    Back to Top Previous Next