ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー・プラグインの使い方
11g リリース1(10.3.5)
B61008-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

4 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 Serverサービスへのアクセスを提供します。

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

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

リクエストのプロキシ

プラグインは、ユーザーが指定する構成に基づいてリクエストをWebLogic Serverにプロキシします。リクエストのURLまたはURLの一部に基づいてリクエストをプロキシできます。これを、パスによるプロキシと呼びます。

リクエスト対象のファイルのMIMEタイプに基づいてリクエストをプロキシすることもできます(ファイル拡張子によるプロキシと呼びます)。

両方の方法を有効にすることもできます。両方の方法を有効にし、リクエストが両方の基準に一致する場合、そのリクエストはパスによってプロキシされます。

これらのリクエストの種類ごとに、プラグインの追加の動作を定義する追加パラメータを指定することもできます。詳細は、「ワイルドカード・アプリケーション・マッピングを使用したパスによるプロキシ」および「Microsoft Internet Information Serverプラグインのインストールと構成」を参照してください。

動作保証

Microsoft Internet Information Serverプラグインと互換性のあるオペレーティング・システムおよびIISバージョンの最新情報は、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.htmlを参照してください。

ワイルドカード・アプリケーション・マッピングを使用したパスによるプロキシ

「Installing Wildcard Application Mappings (IIS 6.0)」(http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5c5ae5e0-f4f9-44b0-a743-f4c3a5ff68ec.mspx?mfr=true)およびIIS 7.0用の「Add a Wildcard Script Map」(http://technet.microsoft.com/en-us/library/cc754606(WS.10).aspx)に記述されているように、リクエスト対象のファイルの拡張子にかかわらず、Webサイトまたは仮想ディレクトリへの各リクエストの開始部分でInternet Server API (ISAPI)を実行するようにWebサイトまたは仮想ディレクトリを構成することができます。この機能を使用して、iisproxy.dllにマッピングを挿入し、リクエストをWebLogic Serverへとパスによってプロキシできます。

ワイルドカード・アプリケーション・マッピングのインストール(IIS 6.0)

次の手順は、「Installing Wildcard Application Mappings (IIS 6.0)」(http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5c5ae5e0-f4f9-44b0-a743-f4c3a5ff68ec.mspx?mfr=true)にある、ワイルドカード・アプリケーション・マッピングをIIS 6.0のWebサーバーまたはWebサイトに追加するための指示を要約したものです。

  1. IISマネージャでローカル・コンピュータとWebサイト・フォルダを拡張し、使用するWebサイトまたは仮想ディレクトリを右クリックし、「プロパティ」をクリックします。

  2. ホーム・ディレクトリタブ、仮想ディレクトリタブまたはディレクトリタブの適切なタブをクリックします。

  3. アプリケーション設定で「構成」をクリックし、「マッピング」タブをクリックします。

  4. ワイルドカード・アプリケーション・マップをインストールするには、次を行います。

    1. 「マッピング」タブで「挿入」をクリックします。

    2. 実行ファイルテキスト・ボックスでiisproxy.dll DLLへのパスを入力するか、「参照」をクリックして移動します。

    3. 「OK」をクリックします。

IIS 7.0用のワイルドカード・スクリプト・マップの追加

次の手順は、IS 7.0用の「Add a Wildcard Script Map」(http://technet.microsoft.com/en-us/library/cc754606(WS.10).aspx)にある、ワイルドカード・スクリプト・マップを追加して、IIS 7.0でISAPIを使用してパスによるプロキシを行うための指示を要約したものです。

  1. IISマネージャを開き、操作するレベルに移動します。IISマネージャを開く操作についての情報は、http://technet.microsoft.com/en-us/library/cc770472(WS.10).aspxにある「IISマネージャを開く」を参照してください。UI内の場所への移動については、http://technet.microsoft.com/en-us/library/cc732920(WS.10).aspxにある「IISマネージャでのナビゲーション」を参照してください。

  2. サーバー、サイトまたはアプリケーション・ホームページの機能ビューでハンドラのマッピングをダブルクリックします。

  3. 「ハンドラ・マッピング」ページの「アクション」ペインで、ワイルドカード・スクリプト・マップをクリックします。

  4. 「実行ファイル」ボックスに完全なパスを入力するか、リクエストを処理するiisproxy.dllを参照します。たとえば、systemroot\system32\inetsrv\iisproxy.dllを入力します。

  5. 「名前」ボックスにハンドラ・マッピングのわかりやすい名前を入力します。

  6. 「OK」をクリックします。

  7. オプションで、ハンドラ・マッピングページで、そのページをロックまたはロック解除するためにハンドラを選択します。ハンドラ・マッピングをロックすると、構成のより下位レベルでオーバーライドされません。リストからハンドラ・マッピングを選択し、「アクション」ペインの「ロックまたはロック解除」をクリックします。

  8. ワイルドカード・スクリプト・マップの追加後、実行ファイルをISAPIおよびCGI権限リストに追加して実行可能にする必要があります。ISAPIおよびCGI権限の詳細は、http://technet.microsoft.com/en-us/library/cc730912(WS.10).aspxの「Configuring ISAPI and CGI Restrictions in IIS 7」を参照してください。

Microsoft Internet Information Serverプラグインのインストールと構成

Microsoft Internet Information Serverプラグインをインストールするには:

  1. WebLogic ServerをインストールしたWL_HOME/server/plugin/win/32またはWL_HOME/server/plugin/win/64ディレクトリからiisproxy.dllファイルをコピーします(WL_HOMEはWebLogic PlatformおよびWebLogic Serverの最上位ディレクトリを表し、IISにアクセスできる便利なディレクトリにWebLogic Serverのインストール・ファイルが格納されています)。このディレクトリには、ステップ4で作成するiisproxy.iniファイルも格納する必要があります。iisproxy.dllファイル用のユーザーの権限を設定し、IISを実行するユーザーの名前を含めます。たとえば、iisproxy.dllファイル上で右クリックして権限を選択し、IISを実行する人のユーザー名を追加するという方法で行えます。

  2. ファイル拡張子(MIMEタイプ)によるプロキシを構成する場合は、次の手順を実行します。(MIMEタイプによるプロキシに加えて、またはそのかわりに、パスによるプロキシも構成できます。ステップ3を参照してください。)

    1. 「スタート」メニューから Internet Information Serviceマネージャを選択して、起動します。

    2. 「サービス・マネージャ」の左側のパネルでWebサイトを選択します(デフォルトは「デフォルトWebサイト」です)。

      図4-1 サービス・マネージャでのWebサイトの選択

      図4-1の説明が続きます
      「図4-1 サービス・マネージャでのWebサイトの選択」の説明

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

    4. 左側のパネルにあるWebサイトの選択を右クリックしプロパティを選択して、Webサイトのプロパティを開きます。

      図4-2 選択されたWebサイトのプロパティの選択

      図4-2の説明が続きます
      「図4-2 選択されたWebサイトのプロパティの選択」の説明

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

      図4-3 プロパティ・パネルのホーム・ディレクトリのタブ

      図4-3の説明が続きます
      「図4-3 プロパティ・パネルのホーム・ディレクトリのタブ」の説明

    6. マッピングタブの「追加」ボタンをクリックして、ファイル・タイプを追加し、それらがWebLogic Serverにプロキシされるように構成します。

      図4-4 追加ボタンをクリックしてファイル・タイプを追加する

      図4-4の説明が続きます
      「図4-4 追加ボタンをクリックしてファイル・タイプを追加する」の説明

    7. 「追加」ダイアログ・ボックスを参照してiisproxy.dllファイルを探します。

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

    9. IIS 6.0以降の構成の場合、ファイルの存在を確認するチェック・ボックスをオフにします。この確認の動作は以前のバージョンのIISから変更されています。以前は、iisproxy.dllファイルの存在を確認していましたが、プロキシからリクエストされたファイルがWebサーバーのルート・ディレクトリに存在するかどうかを確認するようになりました。この確認でファイルが見つからなかった場合、iisproxy.dllファイルはWebLogic Serverにリクエストをプロキシできません。

    10. 「ディレクトリ・セキュリティ」タブで、セキュアなインストールを作成するために、必要に応じて「メソッド除外」を設定します。

    11. 完了したら、「OK」ボタンをクリックして構成を保存します。この手順を、WebLogicにプロキシするファイル・タイプごとに繰り返します。

    12. ファイル・タイプの構成が完了したら、「OK」ボタンをクリックして「プロパティ」パネルを閉じます。


      注意:

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

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

      http://mywebLogic:7001/jspfiles/myfile.jspのようなURLでWebLogic Serverにプロキシされます。



      注意:

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

  3. パスによるプロキシを構成する場合は、次の手順を実行します。(ファイル・タイプによるプロキシのほか、iisproxy.iniファイルに追加パラメータを指定することで、パスに基づいてファイルを提供するようにMicrosoft Internet Information Serverプラグインを構成できます。)パスによるプロキシは、MIMEタイプによるプロキシに優先します。

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

    パスによるプロキシを構成するには:

    1. 「スタート」メニューから Internet Information Serviceマネージャを選択して、起動します。

    2. iisforward.dllファイルをiisproxy.dllファイルと同じディレクトリに置き、iisforward.dllファイルをフィルタ・サービスとしてIISに追加します(Webサイト・プロパティ->ISAPIフィルタタブ->iisforward dllの追加)。iisforward.dllファイル用のユーザー権限を設定し、IISを実行するユーザーの名前を含めます。これを行う方法の1つとして、iisproxy.dllファイル上で右クリックして権限を選択し、IISを実行する人のユーザー名を追加するやり方があります。

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

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

    5. PathTrimパラメータを設定して、必要に応じてWlForwardPathを削除します。たとえば、次を使用して:

      WlForwardPath=/weblogic 
      PathTrim=/weblogic
      

      IISからWebLogic Serverへのリクエストの開始部分を削除します。したがって、/weblogic/sessionが/sessionに変更されます。

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

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

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

    iisproxy.iniファイルには、プラグインの構成パラメータを定義する名前=値ペアが格納されます。パラメータのリストは、表7-1を参照してください。

    iisproxy.iniファイルのテンプレートとしてSample iisproxy.iniファイル内のiisproxy.iniファイルのサンプルを使用します。


    注意:

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

    iisproxy.iniファイルをiisproxy.dllファイルと同じディレクトリに配置することをお薦めします。他の場所を使用することもできます。他のディレクトリに配置した場合、次のディレクトリにおいて次の順序でiisproxy.iniが検索されます。

    1. isproxy.dllが配置されているディレクトリ。

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

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

  5. Microsoft Internet Information ServerプラグインがリクエストをプロキシするWebLogic Serverのホストとポート番号を定義します。構成によって、次の2通りの方法でホストとポートを定義できます。

    • 1つのWebLogic Serverにリクエストをプロキシする場合は、iisproxy.iniファイルでWebLogicHostパラメータとWebLogicPortパラメータを定義します。例:

      WebLogicHost=localhost
      WebLogicPort=7001
      
    • WebLogic Serverのクラスタにリクエストをプロキシする場合は、iisproxy.iniファイルでWebLogicClusterパラメータを定義します。例:

      WebLogicCluster=myweblogic.com:7001,yourweblogic.com:7001
      

      myweblogic.comとyourweblogic.comは、クラスタ内で動作するWebLogic Serverのインスタンスです。

  6. 必要であれば、パスによるプロキシの手順に従ってHTTPトンネリングを有効にし(「ワイルドカード・アプリケーション・マッピングを使用したパスによるプロキシ」を参照)、HTTPトンネリング・リクエストを処理させるWebLogic Serverホスト名とWebLogic Serverポート番号、またはWebLogicクラスタの名前を置き換えてください。

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

  8. IISからWebLogic Serverにサーブレットをプロキシする際に、パスによるプロキシを行わない場合は、「IISからWebLogic Serverへのサーブレットのプロキシ」を参照してください。

  9. 初期設定でインストールされているバージョンのIISでは、iisproxy.dllは許可されていません。IISマネージャ・コンソールを使用して、プラグインを有効にしてください。

    1. IISマネージャ・コンソールを起動します。

    2. 「Webサービス拡張」を選択します。

    3. 「すべての不明なISAPI拡張」を「許可」に設定します。

Microsoft Internet Information Server IIs 7.0プラグインのインストールと構成

この項では、Microsoft Internet Information Server IIs 7.0プラグインの設定方法の差異について説明します。

Microsoft Internet Information Server IIs 7.0プラグインを設定するには、次のステップに従います。

  1. 「Webサイト」->「Webサイトの追加」を右クリックしてIISマネージャにWebアプリケーションを作成します。

    「Webサイトの名前」にWebアプリケーションに付ける名前(たとえば、MyApp)を入力します。Webサイト・アプリケーション・ポート(現在使用されていない有効なポート番号)の物理パスを選択します。

    「OK」をクリックして、Webアプリケーションを作成します。

    「Webサイト」の下にアプリケーションの名前が表示されていれば、アプリケーションが作成され、実行が開始されたことを意味します。MyAppアプリケーションに関するすべての設定(変更可能)を参照するには、「Webサイト」の下のMyAppノードをクリックします(図4-5を参照)。

    図4-5 アプリケーションのホーム・ページ

    図4-5の説明が続きます
    「図4-5 アプリケーションのホーム・ページ」の説明

  2. 「ハンドラ・マッピング」をクリックして、特定のMIMEタイプのハンドラのマッピングを設定します。

    図4-6 ハンドラ・マッピングの設定

    図4-6の説明が続きます
    「図4-6 ハンドラ・マッピングの設定」の説明

  3. 「StaticFile」をクリックし、リクエスト・パスを*から*.*に変更します。「OK」をクリックします。

    図4-7 モジュールのリクエスト・パスの編集

    図4-7の説明が続きます
    「図4-7 モジュールのリクエスト・パスの編集」の説明

  4. MyAppをクリックして、右側のメニュー・オプションのスクリプト・マップの追加をクリックします。リクエスト・パスに*を入力します。

    iisproxy.dllファイルを参照し、実行ファイルとして追加します。proxyという名前を付けます。

    図4-8 スクリプトのリクエスト・パスの編集

    図4-8の説明が続きます
    「図4-8 スクリプトのリクエスト・パスの編集」の説明

  5. 「リクエストの制限」ボタンをクリックし、「リクエストが指定した項目にマップされている場合のみハンドラを呼び出す」ボックスの選択を解除してください。

    図4-9 リクエスト制限の編集

    図4-9の説明が続きます
    「図4-9 リクエスト制限の編集」の説明

  6. このハンドラ・マッピングを追加するには、「OK」をクリックします。スクリプト・マップの追加ダイアログ・ボックスの「はい」をクリックします。

    図4-10 スクリプト・マップの追加

    図4-10の説明が続きます
    「図4-10 スクリプト・マップの追加」の説明

  7. パスによるプロキシを構成するには、スクリプト・マップの追加をクリックします。リクエスト・パスを*.wlforwardとして指定して、実行可能ファイルをiisproxy.dllとして選択します。

    「リクエストの制限」ボタンをクリックし、「リクエストが指定した項目にマップされている場合のみハンドラを呼び出す」ボックスの選択を解除してください。

    このハンドラ・マッピングを追加するには、「OK」をクリックします。スクリプト・マップの追加ダイアログ・ボックスの「はい」をクリックします。

    図4-11 パスによるプロキシのためのスクリプト・マップの追加

    図4-11の説明が続きます
    「図4-11 パスによるプロキシのためのスクリプト・マップの追加」の説明

  8. 左側のMyAppアプリケーションをクリックし、ISAPIフィルタをクリックします。「追加」をクリックして、ISAPIフィルタを追加します。

    フィルタ名としてforwardと入力し、実行可能ファイルとしてiisforward.dllを選択します。「OK」をクリックします。

    図4-12 ISAPIフィルタの編集

    図4-12の説明が続きます
    「図4-12 ISAPIフィルタの編集」の説明

  9. IISマネージャ・ツリーのルート・ノードをクリックし、ISAPIとCGIの制限をクリックします。未指定のISAPIモジュールを許可チェック・ボックスを選択します。

    図4-13 ISAPIおよびCGIの制限の編集

    図4-13の説明が続きます
    「図4-13 ISAPIおよびCGIの制限の編集」の説明

  10. 次の内容のiisproxy.iniというファイルを作成し、プラグインのあるディレクトリに置きます。

    WebLogicHost= @hostname@
    WebLogicPort= @port@
    ConnectRetrySecs=5
    ConnectTimeoutSecs=25
    Debug=ALL
    DebugConfigInfo=ON
    KeepAliveEnabled=true
     
     
    WlForwardPath=/weblogic
    PathTrim=/weblogic
     
    WLLogFile=@Log file name@
    SecureProxy=OFF
    
  11. Internet Explorerブラウザを開き、http://<hostname>:<port>を入力します。Weblogic ServerでMedrecサンプル・アプリケーションが表示されます。

    SSLモードでプラグインを実行する場合、WeblogicPortの値をアプリケーションのSSLポートに変更し、SecureProxyの値をONに変更します。

    図4-14 Medrecサンプル・アプリケーション

    図4-14の説明が続きます
    「図4-14 Medrecサンプル・アプリケーション」の説明

複数の仮想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
    

    説明:

    • N は、仮想Webサイトを表す整数です。最初に定義する仮想Webサイトには整数1を使用し、以降のWebサイトには順に1ずつ増やします。

    • websiteNameは、IISに登録した仮想Webサイトの名前です。

    • portは、IISがHTTPリクエストをリスニングしているポート番号です。

    • dll_directoryは、ステップ1で作成したディレクトリへのパスです。

    例:

    vhost1=strawberry.com:7001
    strawberry.com:7001=c:\strawberry\iisproxy.ini
    vhost2=blueberry.com:7001
    blueberry.com:7001=c:\blueberry\iisproxy.ini
    ...
    
  5. 「プロキシ・リクエスト」のステップ4の説明に従って、仮想Webサイトのiisproxy.iniファイルを作成します。このiispoxy.iniファイルをステップ1で作成したディレクトリにコピーします。

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

  7. IIS 5.0で、「アプリケーション保護」オプションの値を「高(分離プロセス)」に設定します。「アプリケーション保護」オプションを「中(プール)」に設定すると、最初のWebサイトとして登録されたiisproxy.dllが常に呼び出されます。この場合、すべてのリクエストは、最初のWebサイトのiisproxy.iniで定義された同じWebLogic Serverインスタンスにプロキシされます。

    IIS 6.0以降の場合、各仮想ディレクトリに対して個別のアプリケーション・プールを作成します。

    「アプリケーション・プールの作成(IIS 6.)」(http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/93275ef2-2f85-4eb1-8b92-a67545be11b4.mspx?mfr=true)で説明されているように、異なるWebアプリケーションまたはWebサイトをプール内に分離できます。これらのプールはアプリケーション・プールと呼ばれます。アプリケーション・プールでは、プロセス境界が各ワーカー・プロセスをほかのワーカー・プロセスから分離することにより、アプリケーションが1つのアプリケーション・プールにルーティングされるときに別のアプリケーション・プールのアプリケーションがそのアプリケーションに影響を及ぼさないようにします。

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

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

# This file contains initialization name/value pairs
# for the IIS/WebLogic plug-in.
WebLogicHost=localhost
WebLogicPort=7001
ConnectTimeoutSecs=20
ConnectRetrySecs=2

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

# This file contains initialization name/value pairs
# for the IIS/WebLogic plug-in.
WebLogicCluster=myweblogic.com:7001,yourweblogic.com:7001
ConnectTimeoutSecs=20
ConnectRetrySecs=2

注意:

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

IISを経由するACLの作成

ACLは、IISからAuthorizationヘッダーが渡されない場合はMicrosoft Internet Information Serverプラグインでは機能しません。次の情報を参考にして、AuthorizationヘッダーがIISによって渡されることを確認してください。

基本認証を使用する場合、ユーザーはローカルのログオン権限でログオンします。基本認証の使用を有効にするには、IISサーバーで各ユーザー・アカウントに「ローカル・ログオン」ユーザー権限を付与します。基本認証のローカル・ログオンを使用する場合、2つの問題が発生する可能性があります。

基本認証を有効にするには、コンソールの「ディレクトリ・セキュリティ」タブで、「匿名を許可」がオン、それ以外のオプションがすべてオフになっていることを確認してください。

境界認証の設定

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

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

  1. WebLogic ServerアプリケーションにカスタムIDアサーション・プロバイダを作成します。『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のカスタムIDアサーション・プロバイダの開発方法に関する項を参照してください。

  2. Certトークン・タイプをサポートするようにカスタムIDアサーション・プロバイダを構成し、これをアクティブなトークン・タイプにします。『Oracle WebLogic Serverセキュリティ・プロバイダの開発』の新しいトークン・タイプの作成方法に関する項を参照してください。

  3. Webアプリケーションのweb.xmlデプロイメント記述子ファイルでclientCertProxy属性を「True」に設定します。(クラスタを使用する場合、必要に応じて、管理コンソールの「クラスタ」--「構成」--「一般」タブで、クラスタ全体に対して「クライアント証明書プロキシの有効化」属性を「true」に設定します。)『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のcontext-paramを参照してください。

  4. clientCertProxyを設定したら、Microsoft Internet Information Serverプラグインが動作しているマシンからの接続のみをWebLogic Serverが受け入れるようにします。『Oracle WebLogic Serverセキュリティのプログラミング』のネットワーク接続フィルタの使用方法に関する項を参照してください。

  5. プラグインとWebLogic Serverの間でSSLを使用するには、Webサーバー・プラグインで信頼性のある認証局ファイルが必要になります。Sunのkeytoolユーティリティを使用して、WL_HOME/server/libにあるDemoTrust.jksキーストア・ファイルから信頼性のある認証局ファイルをエクスポートします。

    1. たとえば、wlsdemocaファイルを抽出するには次のコマンドを使用します。

      keytool -export -file trustedcafile.der -keystore DemoTrust.jks -alias wlsdemoca
      

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

      キーストアの信頼されたCAファイルをすべて表示するには、次を使用します。 keytool -list -keystore DemoTrust.jks

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

    2. 認証局ファイルをpem形式に変換するには、java utils.der2pem trustedcafile.derを使用します。

    IDアサーション・プロバイダの詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のIDアサーション・プロバイダに関する項を参照してください。

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

Secure Sockets Layer (SSL)プロトコルを使用すると、WebLogic ServerとMicrosoft Internet Information Serverプラグインの間の接続を保護できます。SSLプロトコルによって、Microsoft Internet Information ServerプラグインとWebLogic Serverの間でやり取りされるデータに機密性と整合性がもたらされます。

Microsoft Internet Information Serverプラグインは、プロキシ・プラグインとMicrosoft Internet Information Serverの間の接続が保護にSSLプロトコルが使用されるかどうかを決定する際に、トランスポート・プロトコル(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. SSL接続の情報を定義する追加パラメータをiisproxy.iniファイルに設定します。パラメータの詳細なリストは、「Webサーバー・プラグインのSSLパラメータ」を参照してください。

例:

WebLogicHost=myweblogic.com
WebLogicPort=7002
SecureProxy=ON 

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

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

http://IISserver/weblogic/myServlet

iisforward.dllがフィルタとして登録されていない場合にサーブレットをプロキシするには、ファイル・タイプによるサーブレットのプロキシを構成する必要があります。ファイル・タイプによってサーブレットをプロキシするには:

  1. WebLogic ServerにリクエストをプロキシできるようにIISに任意のファイル・タイプ(拡張子)を登録します。詳細は、「Microsoft Internet Information Serverプラグインのインストールと構成」のステップ2を参照してください。

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

  3. このパターンに従った形式のURLでサーブレットを呼び出します。

    http://www.myserver.com/virtualName/anyfile.ext
    

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


    注意:

    サーブレットから呼び出される画像リンクがWebアプリケーションの一部である場合は、IISに適切なファイル・タイプ(.gifや.jpgなど)を登録して画像に対するリクエストもWebLogic Serverにプロキシする必要があります。ただし、それらの画像はIISから直接提供されるようにすることもできます。

    プロキシ対象のサーブレットに他のサーブレットを呼び出すリンクがある場合は、そのリンクもステップ3のパターンに従ってWebLogic Serverにプロキシする必要があります。


インストールのテスト

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

  1. WebLogic ServerとIISが動作していることを確認します。

  2. JSPファイルをデフォルトWebアプリケーションのドキュメント・ルートに保存します。

  3. 次の例で示されているように、ブラウザを開き、IIS plusファイル名の後に.jspを付けてURLに設定します。

    http://myii.server.com/filename.jsp
    

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

接続エラーとクラスタリング・フェイルオーバー

Microsoft Internet Information Serverプラグインは、WebLogic Serverに接続しようとする際に、複数の構成パラメータを使用してWebLogic Serverホストへの接続の待機時間と、接続確立後のレスポンスの待機時間を決定します。接続できないか、またはレスポンスがない場合、プラグインはクラスタ内の別のWebLogic Serverに接続してリクエストを送信しようとします。接続が失敗するか、またはクラスタ内のいずれのWebLogic Serverインスタンスからもレスポンスがない場合は、エラー・メッセージが送信されます。

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

図4-15 接続のフェイルオーバー

図4-15の説明が続きます
「図4-15 接続フェイルオーバー」の説明

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

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

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

クラスタリングされていない単一のWebLogic Serverでのフェイルオーバー

WebLogic Serverが1つのみ動作している場合、プラグインはWebLogicHostパラメータで定義されているサーバーのみに接続しようとします。その試行が失敗すると、HTTP 503エラー・メッセージが戻されます。プラグインは、ConnectTimeoutSecsおよびConnectRetrySecsパラメータによって規定されたとおりに、WebLogic Serverインスタンスへの接続を試行し続けます。

動的サーバー・リスト

クラスタリングされたバックエンド・サーバーのリストにプロキシするため、またはクラスタリングされていない管理対象サーバー・インスタンスのロード・バランシングを実行するため、WebLogicClusterパラメータが必要です。

クラスタリングされた管理対象サーバーにプロキシする場合、httpd.confまたはweblogic.confファイルでWebLogicClusterパラメータを使用してWebLogic Serverのリストを指定すると、プラグインはクラスタ・メンバー間でのロード・バランシングの起点としてそのリストを使用します。最初のリクエストがそれらのサーバーの1つに転送された後に、クラスタ内のサーバーの更新されたリストを格納する動的サーバー・リストが戻されます。更新されたリストでは、クラスタ内の新しいサーバーが追加され、クラスタを離脱したサーバーやリクエストに応答できなかったサーバーは削除されます。このリストは、クラスタ内で変化が発生したときにHTTPレスポンスによって自動的に更新されます。

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

リクエストが、CookieやPOSTデータに格納されているかURLにエンコードされたセッション情報を含む場合、そのセッションIDには、セッションが最初に確立された特定のサーバー・インスタンス(プライマリ・サーバーと呼びます)への参照が含まれています。Cookieを含むリクエストは、プライマリ・サーバーに接続しようとします。その試行が失敗すると、プラグインはラウンド・ロビン方式でリストの次の使用可能なサーバーに接続しようとします。そのサーバーは元のセカンダリ・サーバーからセッションを取得し、その同じセッションのプライマリ・サーバーになります。詳細は、図4-15を参照してください。


注意:

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