ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverプロキシ・プラグイン12.1.2の使用
12c (12.1.2)
E47983-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 Oracle HTTP Server用WebLogicプロキシ・プラグインの構成

この章では、Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするために使用するWebLogicプロキシ・プラグイン(mod_wl_ohs)の構成方法について説明します。WebLogicプロキシ・プラグインはOracle HTTP Server 12.1.2のインストールに含まれています。これを別途ダウンロードしてインストールする必要はありません。


注意:

WebLogicプロキシ・プラグインが提供する機能は、Apache HTTP Server用のプラグインのそれと似ています。


WebLogicプロキシ・プラグインは、Fusion Middleware Controlを使用するかmod_wl_ohs.conf構成ファイルを手動で編集することで構成できます。

この章の内容は次のとおりです。

2.1 WebLogicプロキシ・プラグインの構成の前提条件

WebLogicプロキシ・プラグインの構成を開始する前に、次のことを行います。

2.2 Fusion Middleware Controlを使用したWebLogicプロキシ・プラグインの構成

Fusion Middleware Controlを使用してmod_wl_ohsモジュールを構成するには、次を実行します。

  1. 2.1項に記載されている前提条件を満たしていることを確認してください。

  2. Oracle HTTP Serverメニューで「管理」を選択します。

  3. 「管理」メニューでmod_wl_ohs構成を選択します。「mod_wl_ohs構成」ページが表示されます。

    「サーバーのプロパティ」画面
    mod_wl_ohs.gif図の説明

  4. 次の表に示す構成設定を指定します。

    フィールド 説明

    WebLogicクラスタ

    ロード・バランシング用に使用できるWebLogic Serverの一覧。サーバーまたはクラスタのリストは、「ホスト:ポート」エントリのリストです。複数のクラスタと単一サーバーの組合せを指定すると、このパラメータに戻される動的リストは、クラスタ化されたサーバーのみを戻します。

    適切なクラスタかどうかが不明な場合は、検索アイコンをクリックしてすべての関連クラスタのリストを確認できます。詳細は、第2.2.1項「検索機能の使用」を参照してください。

    モジュールは、すべての利用可能なサーバー間で単純なラウンドロビンを行います。このプロパティで指定するサーバー・リストは、サーバーとモジュールが保持する動的サーバー・リストの起点になります。新しく追加されたり、障害が発生したり、障害から回復したクラスタ・メンバーがあると、Oracle WebLogic Serverとこのモジュールは連携して自動的にサーバー・リストを自動的に更新します。動的クラスタ・リストの使用を無効にするには、「動的サーバー・リストをオン」フィールドを無効にします。モジュールは、Cookie、URLエンコードされたセッション、またはPOSTデータに格納されたセッションを含むHTTPリクエストを、最初にCookieを作成したクラスタ内のサーバーに転送します。

    注意: 「WebLogicクラスタ」と「WebLogicホスト」は相互排他的フィールドであるため、どちらか1つのみを指定してください。両方のフィールドに値を指定した場合は、「WebLogicクラスタ」が優先されます。

    WebLogicホスト

    HTTPリクエストの転送先のOracle WebLogic Serverホスト(またはOracle WebLogic Serverで定義された仮想ホスト名)。WebLogicクラスタを使用している場合は、WebLogic HostのかわりにWebLogic Clusterパラメータを使用します。

    適切なサーバーかどうかが不明な場合は、検索アイコンをクリックしてすべての関連クラスタのリストを確認できます。詳細は、第2.2.1項「検索機能の使用」を参照してください。

    注意: 「WebLogicホスト」「WebLogicクラスタ」は相互排他的フィールドであるため、どちらか1つのみを指定してください。両方のフィールドに値を指定した場合は、「WebLogicクラスタ」が優先されます。

    WebLogicポート

    モジュール(または他のサーバー)からの接続リクエストをOracle WebLogic Serverホストがリスニングするポート。(モジュールおよびOracle WebLogic Serverの間でSSLを使用している場合、このパラメータをSSLのリスニング・ポートに設定します。)

    動的サーバー・リストをオン | オフ

    「オフ」に設定すると、モジュールからプロキシされるリクエストをロード・バランシングするために使用される動的クラスタ・リストが無視され、「WebLogicクラスタ」パラメータで指定された静的リストのみが使用されます。通常、このパラメータはオンに設定する必要があります。

    このパラメータをオフに設定すると、いくつかの影響があります。

    • 静的リストの1つまたは複数のサーバーで障害が発生した場合、モジュールは応答不能のサーバーへの接続に時間を費やし、その結果としてパフォーマンスが低下する可能性があります。

    • クラスタに新しいサーバーを追加した場合は、このパラメータを再定義するまでモジュールはその新しいサーバーにリクエストをプロキシできません。Oracle WebLogic Serverは、新しいサーバーがクラスタに追加されたときに動的サーバー・リストにその新しいサーバーを自動的に追加します。

    エラー・ページ

    WebサーバーがリクエストをOracle WebLogic Serverに転送できなかった場合に表示される、ユーザー独自のエラー・ページを作成できます。

    WebLogic一時ディレクトリ

    POSTデータ・ファイルの_wl_proxyディレクトリの場所を指定します。

    パスまたはMIMEタイプの除外

    このパラメータを使用すると、特定のリクエストをプロキシ処理から除外できます。

    このパラメータは、Locationタグ・レベルでローカルに定義することも、グローバルに定義することもできます。このプロパティをローカルに定義した場合、グローバルなプロパティはオーバーライドされず、2つのパラメータの結合が定義されます。

    一致式

    この領域では、式のオーバーライドを指定します。たとえば、MIMEタイプでプロキシする場合は、次のように入力します。

    *.jsp WebLogicHost=myHost|paramName=value
    

    次の構文を使用して、一致式の新しいパラメータを定義できます。

    *.jsp PathPrepend=/test PathTrim=/foo
    

    場所

    この表は、場所のオーバーライドの指定に使用します。次のステップ6を参照してください。


  5. 必要に応じて、「一致式」フィールドに式のオーバーライドを追加します。

  6. 必要に応じて、「場所」表に場所のオーバーライドを追加します。これを行うには:

    1. 「行の追加」をクリックして、新しい行を作成します。

    2. 関連するディレクティブが有効になる基本URIを入力します。

    3. 「WebLogicクラスタ」「WebLogicホスト」および「WebLogicポート」の各フィールドに値を入力します。自動入力をクリックしてこれらの値を自動的に入力できます(第2.2.2項「自動入力機能の使用」を参照)。

    4. 「パスの切捨て」フィールドについては、RFC仕様により、URLの一般的な構文は次のとおりです。

      [PROTOCOL]://[HOSTNAME]:{PORT}/{PATH}/{FILENAME};{PATH_PARAMS}/{QUERY_STRING}...
      

      「パスの切捨て」には、WebLogic Serverにリクエストが転送される前に、元のURLの{PATH}/{FILENAME}の部分から取り除く文字列を指定します。たとえば、次のURL:

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

      が解析のためにモジュールに渡され、URLをWebLogic Serverに渡す前に/weblogicを取り除くように「パスの切捨て」を設定している場合、WebLogic Serverに転送されるURLは次になります。

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

      注意:

      既存のサード・パーティ・サーバーを変更し、初めてモジュールを使用してWebLogic Serverにリクエストをプロキシする場合、/fooへのアプリケーション・パスを変更してweblogic/fooを含めるようにする必要があります。「パスの切捨て」と「パスの付加」を組み合せることで、このパスを変更できます。


    5. 「パスの付加」フィールドについては、RFC仕様により、URLの一般的な構文は次のとおりです。

      [PROTOCOL]://[HOSTNAME]:{PORT}/{PATH}/{FILENAME};{PATH_PARAMS}/{QUERY_STRING}...
      

      「パスの付加」には、「パスの切捨て」の値が取り除かれた後、WebLogic Serverにリクエストが転送される前に、元のURLの{PATH}の部分の先頭に付加されるパスを指定します。


      注意:

      ファイル名を末尾に追加する必要がある場合は、「パスの付加」ではなく、DefaultFileNameモジュール・パラメータを使用します。


    6. 新規の行を保存するには「行の追加」を再度クリックします。

  7. 設定が正しければ、「適用」をクリックして変更を適用します。設定が正しくないか、変更を適用しない場合は、「元に戻す」をクリックして元の設定に戻します。

  8. Oracle HTTP Serverを再起動するには、Oracle HTTP Serverメニューから「制御」を選択し、「起動」を選択します。

mod_wl_ohsモジュールの構成が保存され、「mod_wl_ohs構成」ページに表示されます。

2.2.1 検索機能の使用

検索アイコン虫眼鏡をクリックすると、選択したOracle HTTP Serverインスタンスで使用可能なクラスタまたはサーバーのリストを表示できます。検索機能を使用するには、次のことを行います。

  1. 「WebLogicクラスタ」または「WebLogicホスト」の検索アイコンをクリックします。「WebLogicクラスタの選択」または「WebLogic Serverの選択」ダイアログ・ボックスが表示されます。

  2. 使用するクラスタまたはサーバーを選択して、「OK」をクリックします。

選択したクラスタまたはサーバーの名前が、該当するフィールドに表示されます。

2.2.2 自動入力機能の使用

自動入力ボタンを使用すると、指定したベースURLの有効なWebLogic Serverとエンドポイントの位置を、WebLogicプロキシ・プラグインの「構成」画面の「ロケーション」表に簡単に追加できます。これを行うには:

  1. 「追加」をクリックして、新しい場所を追加します。

  2. 「場所」フィールドに場所名を入力します。

  3. 自動入力をクリックします。

同じ名前の場所のデータが更新され、新しい場所が表に追加されます。

2.3 WebLogicプロキシ・プラグインの手動による構成

WebLogicプロキシ・プラグインを手動で構成するには、mod_wl_ohs.confファイルでディレクティブを指定します。

  1. 2.1項に記載されている前提条件を満たしていることを確認してください。

  2. 次のディレクトリに配置されているmod_wl_ohs.confファイルをテキスト・エディタで開きます。

    DOMAIN_HOME/config/fmwconfig/components/OHS/instances/componentName

  3. <IfModule weblogic_module>要素を見つけます。

  4. 次の説明に従って構成ファイルの中の<IfModule weblogic_module>要素にディレクティブを追加します。


    注意:

    ディレクティブを事前定義<IfModule weblogic_module>要素の中に指定することをお薦めします。

    ディレクティブを事前定義済の<IfModule weblogic_module>要素の外や、追加の<IfModule weblogic_module>要素またはmod_wl_ohs.conf以外の構成ファイルの中に指定した場合、WebLogicプロキシ・プラグインは機能したとしても、モジュールの構成状態が、Fusion Middleware Controlに表示されるように、mod_wl_ohs.conf構成ファイルの中に指定したディレクティブと矛盾する可能性があります。


    • 単一のOracle WebLogic Serverインスタンス上で実行されるアプリケーションにリクエストを転送するには、その宛先サーバーの詳細を<location>要素の中に指定します。

      構文:

      <IfModule weblogic_module>
      <Location path>
      WLSRequest On
      WebLogicHost host
      WeblogicPort port
      </Location>
      </IfModule>
      

      :

      次のように構成すると、Oracle HTTP Serverリスニング・ポートで受信した/myapp1 URIへのリクエストはOracle WebLogic Serverのリスニング・ポートlocalhost:7001/myapp1へと転送されます。

      <IfModule weblogic_module>
      <Location /myapp1>
      WLSRequest On
      WebLogicHost localhost
      WeblogicPort 7001
      </Location>
      </IfModule>
      
    • Oracle WebLogic Serverインスタンスのクラスタで実行されるアプリケーションにリクエストを転送するには、その宛先クラスタの詳細を新しい<location>要素の中に指定します。

      構文:

      <IfModule weblogic_module>
      <Location path>
      WLSRequest On
      WebLogicCluster host:port,host:port,...
      </Location>
      </IfModule>
      

      :

      次のように構成すると、Oracle HTTP Serverリスニング・ポートで受信した/myapp2 URIへのリクエストは、リスニング・ポートがlocalhost:8002localhost:8003の管理対象サーバーを含むOracle WebLogic Serverクラスタの/myapp2へと転送されます。

      <IfModule weblogic_module>
      <Location /myapp2>
      WLSRequest On
      WebLogicCluster localhost:8002,localhost:8003
      </Location>
      </IfModule>
      
    • それぞれ単一のOracle WebLogic Serverインスタンスとクラスタで実行されるアプリケーションなど、複数の宛先を構成する場合は、各宛先を異なる<location>子要素の中に指定する必要があります。なお、次の構文で示すように、<IfModule weblogic_module>要素内のすべての<location>子要素は同じレベルにある必要があります。

      <IfModule weblogic_module>
      #For an application running on a single server instance
      <Location path1>
      WLSRequest On
      WebLogicHost host
      WeblogicPort port
      </Location>
      
      #For an application running on a cluster
      <Location path1>
      WLSRequest On
      WebLogicCluster host:port,host:port,...
      </Location>
      
      </IfModule>
      
    • Oracle HTTP Serverの高可用性デプロイメントを有効にする目的などでWebLogicプロキシ・プラグインを管理対象サーバーにリンクできるように構成するには、mod_wl_ohs.confを次のように編集します。

      <IfModule mod_weblogic.c>
            WebLogicCluster apphost1.mycompany.com:7050, apphost2.mycompany.com:7050
            MatchExpression *.jsp
       </IfModule>
        
      <Location /weblogic>
        WLSRequest On
        WebLogicCluster apphost1.mycompany.com:7050,apphost2.com:7050
        DefaultFileName index.jsp
      </Location>
      

      注意:

      SSL終端を使用していて、リクエストをWebLogicにルーティングする場合は、次の追加の構成が必要になります。

      WebLogicコンソールで、ドメイン、クラスタまたは管理対象サーバーのレベルで「WebLogicプラグインの有効化」をtrueに設定する必要があります。

      WebLogic管理対象サーバーにリクエストを送信するLocationブロックで、次の行も追加する必要があります。

      WLProxySSL ON
      WLProxySSLPassThrough ON
      

      例:

      <Location /weblogic>
        WLSRequest On
        WebLogicCluster apphost1.mycompany.com:7050,apphost2.com:7050
        WLProxySSL On
        WLProxySSLPassThrough ON
        DefaultFileName index.jsp
      </Location>
      

      WebLogicプラグインを有効にした後に、管理サーバーを再起動する必要があります。


      次の例は、Oracle WebLogic管理対象サーバーにリクエストをルーティングする2種類の方法を示しています。

      • <ifModule>ブロックは、Apphost1およびApphost2にあるWebLogic管理対象サーバー・クラスタに*.jspで終わるリクエストを送信します。

      • <Location>ブロックは、Apphost1およびApphost2にあるWebLogic管理対象サーバー・クラスタに、/weblogicで始まるURLを持つリクエストを送信します。

    • Oracle HTTP ServerとOracle WebLogic Server間の一方向SSLおよび双方向SSLをサポートするようにWebLogicプロキシ・プラグインを構成する方法の詳細は、「プラグインでのSSLの使用」を参照してください。

    mod_wl_ohs.confファイルで指定できるその他のディレクティブの詳細は、第7章「Webサーバー・プラグインのパラメータ」を参照してください。

  5. 『Oracle HTTP Serverの管理』のOracle HTTP Serverの起動に関する項で説明されているいずれかの方法でOracle HTTP Serverを再起動します。

2.4 Oracle HTTP Serverの非推奨ディレクティブ

WebLogicプロキシ・プラグインのWebLogic Serverプラグイン・ログは、現在Web Serverエラー・ログ・メカニズムの一部です。参照先には、簡単に識別できるように接頭辞weblogic:が付いています。例:

[Fri Dec 27 12:09:14 2013] [debug] ap_proxy.cpp(143): [client 192.168.1.123]
weblogic: INFO: SSL is configured, referer:@ https://example.com/app/fileUploadAction.do

ディレクティブWLLogFileとDebugは非推奨になりました。構成でこれらのディレクティブがまだ使用されている場合、次の注意がコンソールのログ・ファイルに表示されます。

The WLLogFile directive is ignored. The web server log file is used instead. The Debug directive is ignored. The web server log level is used instead.

プラグイン・ログを有効にするには:

Oracle HTTP Serverログの管理方法の詳細は、「Oracle HTTP Serverログの管理」を参照してください。

2.5 WebLogicプロキシ・プラグイン実装のトラブルシューティング

この項では、WebLogicプロキシ・プラグインの使用時に発生する可能性のある一般的な問題とその解決方法について説明します。内容は次のとおりです。

2.5.1 WLSセッションの問題

WebLogicプロキシ・プラグインは、バックエンドWLSサーバー/クラスタにリクエストをルーティングします。WLSはセッションは、同じクライアントからの後続のリクエストが同じWLSサーバーにルーティングされるように接続を維持します。しかし、様々な原因でWebLogicプロキシ・プラグインがWLSサーバーと通信できなくなった場合には次のことが起きます。

  • リクエストが単一のWebLogic Serverインスタンスにルーティングされた場合は、WebLogicプロキシ・プラグインは、ConnectTimeoutSecsとConnectRetrySecsの比によって規定される最大再試行回数に従って、その同じWebLogic Serverインスタンスへの接続を試行し続けます。すべての試行が失敗すると、HTTP 503エラー・メッセージがクライアントに戻されます。

  • リクエストがWebLogicクラスタにルーティングされた場合は、現在のWLSサーバーが「bad」とマークされ、そのリクエストは次に使用可能なWLSサーバーにルーティングされます。すべての試行が失敗すると、HTTP 503エラー・メッセージがクライアントに戻されます。

HTTP 503エラー・メッセージが送信されるほかに、HTTPクライアントにレスポンスとして次のメッセージが表示されます。

Failure of Web Server bridge:
No backend server available for connection: timed out after xx seconds or idempotent set to OFF or method not idempotent.

2.5.2 CONNECTION_REFUSEDエラー

ストレス条件下では、少数のリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録されることがあります。

weblogic: Trying GET /uri at backend host 'xx.xx.xx.xx/port; got exception 'CONNECTION_REFUSED [os error=xxx, line xxxx of URL.cpp]: apr_socket_connect call failed with error=xxx, host=xx.xx.xx.xx, port=xxxx'

第6.4.2項「Connection_Refusedエラーを減らすためのヒント」で説明されているように、WLSサーバーのバックログ接続数が最大許容値に達した可能性があります。

解決するには、第6.4.2項「Connection_Refusedエラーを減らすためのヒント」に記載されている手順に従ってください。

2.5.3 NO_RESOURCESエラー

ストレス条件下では、少数のリクエストが失敗し、エラー・ログ・ファイルに次のエラーが記録されることがあります。

weblogic: *******Exception type [NO_RESOURCES] (apr_socket_connect call failed with error=70007, host=xx.xx.xx.xx, port=xxxx) raised at line xxxx of URL.cpp

これは通常、WLSサーバーがビジー状態でWebLogicプロキシ・プラグインからの接続リクエストにレスポンスできない場合に発生します。WLSocketTimeoutSecsにより高い値を設定することで解決する場合があります。これにより、WebLogicプロキシ・プラグインが接続リクエストに対するWLSサーバーからのレスポンスを待機する時間が長くなります。