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

前
 
次
 

3 Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの構成

この章では、Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをインストールおよび構成する方法について説明します。内容は以下のとおりです。


注意:

Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするには、mod_wl_ohsプラグインを使用します。このプラグインはApache HTTP Server用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsを構成する方法は、第2章「Oracle HTTP Server用WebLogicプロキシ・プラグインの構成」を参照してください。


3.1 サポート・ノート

Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインは、Apache Webサーバーでサポートされており、WebSocketアプリケーションのフロントエンドとなることができます。このサポートは、次の場所にある動作保証マトリックスで説明されています。

http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html

このURLは、動作保証セントラル・ページを指しているため、ご使用のWebサーバー・バージョンに基づいて該当するモジュールをコピーする必要があります。WLSプラグイン用の動作保証を取得するには、ご使用のFMW/WLSバージョン(12.1.2.0など)関連のリストからスプレッドシート・ドキュメントを選択してから、Webサーバー・タブを開きます。

3.2 Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインのインストール

第1.2項「WLS Webサーバー・プロキシ・プラグイン12.1.2の入手」の説明に従ってApache HTTP Server用WLS Webサーバー・プロキシ・プラグインをダウンロードした後、Apache HTTP ServerにApache HTTP Serverモジュールとしてインストールできます。

3.2.1 インストールの前提条件

Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをインストールする前に、次のことを行います。

  • 第1.2項「WLS Webサーバー・プロキシ・プラグイン12.1.2の入手」の説明に従って、Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをダウンロードします。

  • プラグインzipを展開する場所(PLUGIN_HOME、たとえば、/home/myhome/weblogic-plugins-12.1.2/)

  • プラグインzip配布をPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-12.1.2/)に展開します。この配布には次のファイルが含まれています:

    表3-1 Apache Web ServerプラグインZipに含まれるファイル

    (パス)/ファイル名 説明

    README.txt

    プラグインのREADMEファイル。

    bin/orapki.bat

    Oracleウォレットの構成に使用するorapkiツールです。

    jlib/*.jar

    orapki用Javaヘルパー・ライブラリ

    lib/mod_wl.so (Windowsでは.dll)

    WebLogicプロキシ・モジュール

    lib/*.so(.dll)

    ヘルパー・ライブラリ


  • SSLを使用する場合、JDK 6をインストールします。orapkiユーティリティを使用するには、JDK 6をインストールしている必要があります。このユーティリティは、SSLで使用するためにウォレットや証明書失効リストのような公開鍵インフラストラクチャ(PKI)要素を管理します。

  • 互換性のあるApache HTTP Serverをインストールしていることを確認します。

    詳細については、以下を参照してください。

    http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

  • サポートされているバージョンのOracle WebLogic Serverが構成済で、ターゲット・システムで実行されていることを確認します。このサーバーは、プラグインzip配布を展開したシステム上で実行されている必要はないことに注意してください。サポートされているOracle WebLogic Serverのバージョンは、次を参照してください。

    http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

3.2.2 Apache HTTP Serverプラグインのインストール

Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインは、UNIXプラットフォーム用の共有オブジェクト(.so)およびWindows用のDLLとして配布されます。プラグインはここから入手できます。

Apache HTTP Serverプラグインをインストールするには:

  1. weblogic-plugins-12.1.2/libフォルダがUNIXシステム上のLD_LIBRARY_PATH(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合、Apache HTTP Serverの開始中にリンケージ・エラーが発生します。

  2. ダウンロードしたプラグイン・ファイルを解凍した場所でlib/mod_wl.so (Windowsの場合はlib\mod_wl.dll)を見つけます。例: /home/myhome/weblogic-plugins-12.1.2/lib/mod_wl.so。

  3. mod_so.cモジュールが有効であることを確認します。

    Apacheによって提供されるApache HTTP Serverをインストールした場合、mod_so.cはすでに有効化されています。次のコマンドを実行して、mod_so.cが有効化されていることを確認してください。

    • Windowsの場合

      APACHE_HOME\bin> apachectl -l
      
    • UNIX/Linuxの場合

      APACHE_HOME/bin/apachectl -l
      

    (APACHE_HOMEはApache HTTP Serverのインストールを含むディレクトリです。)

    このコマンドは、有効なすべてのモジュールのリストを表示します。mod_so.cがリストにない場合、Apache HTTP Serverを再構築し、次の構成オプションが指定されていることを確認します。

    ...
    --enable-module=so
    ...
    
  4. バックアップとしてAPACHE_HOME/bin/httpd.confファイルのコピーを作成します。

  5. httpd.confファイルを開きます。

  6. 次の文を追加してApache 2.2.x用Apache HTTP Serverプラグイン・モジュールをインストールします。Windowsの場合は、.dllファイルを指定します。

    LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.2/lib/mod_wl.so
    
  7. 次のコマンドを実行して、httpd.confファイルの構文を確認します。

    • Windowsの場合

      APACHE_HOME\bin> apachectl -t
      
    • UNIX/Linuxの場合

      > APACHE_HOME/bin/apachectl -t
      

    httpd.confファイルにエラーがある場合、このコマンドの実行結果としてエラーが出力され、それ以外の場合は次の結果が出力されます。

    Syntax OK
    

3.3 Apache HTTP Serverプラグインの構成

この項では、HTTPトンネリングを有効にし、Oracle WebLogic Serverの他のプラグイン・パラメータを使用するために、httpd.confファイルを編集してパスまたはMIMEタイプによりリクエストをプロキシする方法について説明します。

3.3.1 httpd.confファイルの編集

Apache HTTP Serverインストールのhttpd.confファイルを編集し、Apache HTTP Serverプラグインを構成します。

  1. httpd.confファイルをまだ開いていない場合は、開きます。

  2. MIMEタイプによってリクエストをプロキシするには、次のいずれかを定義するIfModuleブロックを追加します。

    • クラスタ化されていないWebLogic Serverの場合:WebLogicHostおよびWebLogicPortパラメータ。

    • WebLogic Serverのクラスタの場合:WebLogicClusterパラメータ。

    例:

    <IfModule mod_weblogic.c>
     WebLogicHost myweblogic.example.com
     WebLogicPort 7001
     DebugConfigInfo ON
    </IfModule>
    
  3. MIMEタイプによってリクエストをプロキシするには、MatchExpression行を<IfModule>ブロックに追加します。MIMEタイプおよびパスによるプロキシの両方を有効にした場合、パスによるプロキシがMIMEタイプによるプロキシに優先することに注意してください。

    たとえば、クラスタ化されていないWebLogic Serverに対する次の<IfModule>ブロックでは、MIMEタイプが.jspであるすべてのファイルがプロキシされます。

    <IfModule mod_weblogic.c>
     WebLogicHost my-weblogic.server.com
     WebLogicPort 7001
     MatchExpression *.jsp
     DebugConfigInfo ON
    </IfModule>
    

    次のように、複数のMatchExpressionを使用することもできます。

    <IfModule mod_weblogic.c>
     WebLogicHost my-weblogic.server.com
     WebLogicPort 7001
     MatchExpression *.jsp
     MatchExpression *.xyz
     DebugConfigInfo ON
    </IfModule>
    

    MIMEタイプによってWebLogic Serverのクラスタにリクエストをプロキシする場合は、WebLogicHostおよびWebLogicPortパラメータのかわりにWebLogicClusterパラメータを使用します。例:

    <IfModule mod_weblogic.c>
     WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
     MatchExpression *.jsp
     MatchExpression *.xyz
    </IfModule>
    
  4. パスによってリクエストをプロキシするには、<Location>ブロックおよびSetHandler文を使用します。SetHandlerは、Apache HTTP Server用WLS Webサーバー・プロキシ・プラグイン・モジュールのハンドラを指定します。たとえば、次のLocationブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。

    <Location /weblogic>
    WLSRequest On
    PathTrim /weblogic
    </Location>
    

    PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(第7.1項「Webサーバー・プラグインの一般的なパラメータ」を参照してください)。

  5. PathTrimパラメータは<Location>タグの中で構成する必要があります。SSLを使用するためにApache HTTP Server用WLS Webサーバー・プロキシ・プラグインを構成する際に、次の既知の問題が発生します。

    • 次の構成は正しくありません:

      <Location /weblogic>
       WLSRequest On 
      </Location> 
      
      <IfModule mod_weblogic.c>
       WebLogicHost localhost
       WebLogicPort 7001
       PathTrim /weblogic
      </IfModule> 
      

      次の構成は正しい設定です。

      <Location /weblogic>
       WLSRequest On
       PathTrim /weblogic
      </Location>
      
    • Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの現在の実装では、Apache SSLに関して複数の証明書ファイルの使用はサポートされていません。

  6. 必要に応じて、t3またはIIOPのHTTPトンネリングを有効にします。

    1. t3プロトコルおよびweblogic.jarを使用する場合にHTTPトンネリングを有効にするには、次の<Location>ブロックをhttpd.confファイルに追加します。

      <Location /bea_wls_internal/HTTPClnt>
       WLSRequest On
      </Location>
      
    2. IIOP (WebLogic Serverシン・クライアントのwlclient.jarで使用される唯一のプロトコル)を使用する場合にHTTPトンネリングを有効にするには、次のLocationブロックをhttpd.confファイルに追加します。

      <Location /bea_wls_internal/iiop>
       WLSRequest On
      </Location>
      
  7. Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの追加パラメータを定義します。

    Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインは、第7.1項「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの動作を変更するには、次のいずれかでパラメータを定義します。

    • <Location>ブロック(パスによるプロキシに適用されるパラメータの場合)

    • グローバル/仮想ホスト・スコープ(MIMEタイプによるプロキシに適用されるパラメータの場合)

  8. 次のコマンドを実行して、httpd.confファイルの構文を確認します。

    • Windowsの場合

      APACHE_HOME\bin> apachectl -t
      
    • UNIX/Linuxの場合

      > APACHE_HOME/bin/apachectl -t
      

    httpd.confファイルにエラーがある場合、このコマンドの実行結果としてエラーが出力され、それ以外の場合は次の結果が出力されます。

    Syntax OK
    
  9. Apache HTTP Serverを起動します。

    • Windowsの場合

      APACHE_HOME\bin> httpd -k start
      
    • UNIX/Linuxの場合

      > APACHE_HOME/bin/apachectl start
      
  10. ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信します。レスポンスを検証します。

3.3.1.1 LocationまたはVirtualHostブロック内へのWebLogicプロパティの配置

<IfModule>を使用しないように選択した場合は、そのかわりに、WebLogicプロパティをLocationまたは<VirtualHost>ブロック内に直接配置できます。次に<Location>および<VirtualHost>ブロックの例を示します。

<Location /weblogic>
WLSRequest On
WebLogicHost myweblogic.server.com
WebLogicPort 7001
</Location>
 
<Location /weblogic>
WLSRequest On
WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
</Location>
 
<VirtualHost apachehost:80>
WLSRequest On
WebLogicServer weblogic.server.com
WebLogicPort 7001
</VirtualHost>

3.3.1.2 例: Apacheプラグインの構成

次の例は、ApacheプラグインがバックエンドWebLogic Serverにリクエストをプロキシするように迅速に設定するための基本的な手順を示しています。

  1. ${APACHE_HOME}/conf/httpd.confファイルのコピーを作成します。

  2. ファイルを編集して次のコードをファイルに追加します。

    ...   LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.2/lib/mod_wl.so
    
      <IfModule mod_weblogic.c>
        WebLogicHost wls-host
        WebLogicPort wls-port
      </IfModule>
    
      <Location /mywebapp>
        WLSRequest On
      </Location>
      ...
    
  3. 次のコマンドを実行して、${PLUGIN_HOME}/lib isdをLD_LIBRARY_PATHにインクルードします。

     $ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-12.1.2/lib:...
    

    注意:

    また、libの内容をAPACHE_HOME\libにコピーするか、APACHE_HOME/bin/apachectlを編集してLD_LIBRARY_PATHを更新することにより、PATHを更新できます。


  4. プロンプトに対し、次を入力してApache HTTP Serverを起動します。

    $ ${APACHE_HOME}/bin/apachectl start
    
  5. ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信し、レスポンスを検証します。

3.3.2 httpd.confファイルへのweblogic.confファイルのインクルード

別個の構成ファイルを複数用意する場合は、httpd.confファイルの<IfModule>ブロックのApache HTTP Server Includeディレクティブを使用して、weblogic.confという独立した構成ファイルでパラメータを定義できます。

<IfModule mod_weblogic.c>
 # Config file for WebLogic Server that defines the parameters
 Include conf/weblogic.conf 
</IfModule>

weblogic.confファイルの構文は、httpd.confファイルの構文と同じです。

この項では、weblogic.confファイルの作成方法を説明し、サンプルのweblogic.confファイルが含まれています。

3.3.2.1 weblogic.confファイルの作成

weblogic.confファイルを作成する際には、次の点に注意してください。

  • パラメータはそれぞれ独立した行に入力します。パラメータとその値の間に"="を挿入しないでください。例:

    PARAM_1 value1
    PARAM_2 value2
    PARAM_3 value3
    
  • <IfModule>ブロックのMatchExpressionで指定されたMIMEタイプとLocationブロックで指定されたパスの両方にリクエストが一致する場合は、<Location>ブロックで指定された動作が優先されます。

  • Apache HTTP Serverの<VirtualHost>ブロックを使用する場合は、<VirtualHost>ブロック(http://httpd.apache.org/docs/vhosts/のApache仮想ホスト・ドキュメントを参照)内の仮想ホストのすべての構成パラメータ(たとえば、MatchExpression)を含める必要があります。

  • httpd.confファイルのサンプルを次に示します。

    <IfModule mod_weblogic.c>
     WebLogicCluster johndoe02:8005,johndoe:8006
     WLTempDir "c:\myTemp"
     DebugConfigInfo ON
     KeepAliveEnabled ON
     KeepAliveSecs 15
    </IfModule>
    
    <Location /jurl>
     WLSRequest On
     WebLogicCluster agarwalp01:7001
     WLTempDir "c:\jurl
    </Location>
    
    <Location /web>
     WLSRequest On
     PathTrim/web
     WebLogicHost myhost
     WebLogicPort 8001
     WLTempDir "c:\web"
    </Location>
     <Location /foo>
     WLSRequest On
     WebLogicHost myhost02
     WebLogicPort 8090
     WLTempDir "c:\foo"
     PathTrim/foo
    </Location>
    
  • /jurl/*と一致するすべてのリクエストは、c:\jurlにPOSTデータ・ファイルがあり、agarwalp01およびポート7001にリクエストをリバース・プロキシします。/web/*と一致するすべてのリクエストは、c:\webにPOSTデータ・ファイルがあり、myhostおよびポート8001にリクエストをリバース・プロキシします。/foo/*と一致するすべてのリクエストは、c:\fooにPOSTデータ・ファイルが書き込まれ、myhost02およびポート8090にリクエストをリバース・プロキシします。

  • <Files>ブロックではなくMatchExpression文を使用する必要があります。

3.3.2.2 weblogic.conf構成ファイルのサンプル

次のweblogic.confファイルの例をテンプレートとして使用して、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。

例3-1 Weblogicクラスタを使用した例

# These parameters are common for all URLs which are 
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks. (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)

<IfModule mod_weblogic.c>
 WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
 ErrorPage http://myerrorpage.mydomain.com
 MatchExpression *.jsp
</IfModule>
####################################################

例3-2で、ファイル名のパターン、HTTPリクエストのトランスポート先となるWebLogic Serverホストおよびその他のパラメータを表すMatchExpressionパラメータの構文は次のとおりです。

MatchExpression [filename pattern] [WebLogicHost=host] | [paramName=value]

最初のMatchExpressionパラメータではファイル名パターン*.jspを指定してから、1つのWebLogicHost名を指定しています。パイプ記号の後に続くparamName=valueの組合せでWebLogic Serverが接続リクエストをリスニングするポートを指定し、さらに「デバッグ」オプションを有効にするよう指定しています。2番目のMatchExpressionでは、ファイル名パターン*.httpを指定し、WebLogicクラスタ・ホストおよびそのポートを特定しています。パイプ記号の後に続くparamName=valueの組合せでは、クラスタのエラー・ページを指定しています。

例3-2 複数のWebLogicクラスタを使用した例

# These parameters are common for all URLs which are 
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)

<IfModule mod_weblogic.c>
 MatchExpression *.jsp WebLogicHost=myHost|WebLogicPort=7001|Debug=ON
 MatchExpression *.html WebLogicCluster=myHost1:7282,myHost2:7283|ErrorPage=
 http://www.xyz.com/error.html
</IfModule>

例3-3に、WebLogicクラスタを使用しない例を示します。

例3-3 WebLogicクラスタを使用しない例

# These parameters are common for all URLs which are 
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)
<IfModule mod_weblogic.c>
 WebLogicHost myweblogic.server.com
 WebLogicPort 7001
 MatchExpression *.jsp
</IfModule>

例3-4に、複数の名前ベースの仮想ホストを構成する例を示します。

例3-4 複数の名前ベースの仮想ホストを構成する例

# VirtualHost1 = localhost:80
<VirtualHost 127.0.0.1:80>
DocumentRoot "C:/test/VirtualHost1"
ServerName localhost:80
<IfModule mod_weblogic.c> 
#... WLS parameter ...
WebLogicCluster localhost:7101,localhost:7201
# Example: MatchExpression *.jsp <some additional parameter>
MatchExpression *.jsp PathPrepend=/test2
</IfModule>
</VirtualHost>
 
# VirtualHost2 = 127.0.0.2:80
<VirtualHost 127.0.0.2:80>
DocumentRoot "C:/test/VirtualHost1"
ServerName 127.0.0.2:80
<IfModule mod_weblogic.c> 
#... WLS parameter ...
WebLogicCluster localhost:7101,localhost:7201
# Example: MatchExpression *.jsp <some additional parameter>
MatchExpression *.jsp PathPrepend=/test2
#... WLS parameter ...
</IfModule>
</VirtualHost>

ServerNameには一意の値を定義する必要があります。一意でない場合、一部のプラグイン・パラメータが意図したとおりに機能しません。

3.3.2.3 Apache HTTP Server httpd.confファイルのテンプレート

この項では、Apache 2.2のhttpd.confファイルのサンプルを紹介します。このサンプルをテンプレートとして使用し、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。

Apache HTTP Serverでは大文字と小文字は区別されません。

例3-5 Apache 2.2用サンプルhttpd.confファイル

####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module lhome/myhome/weblogic-plugins-12.1.2/lib/mod_wl.so

<Location /weblogic>
 WLSRequest On
 PathTrim /weblogic
 ErrorPage http://myerrorpage1.mydomain.com
</Location>

<Location /servletimages>
 WLSRequest On
 PathTrim /something
 ErrorPage http://myerrorpage1.mydomain.com
</Location>

<IfModule mod_weblogic.c>
  MatchExpression *.jsp
  WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
  ErrorPage http://myerrorpage.mydomain.com
</IfModule>

3.4 Apache HTTP Serverの非推奨ディレクティブ

WebLogic Serverプラグイン・ログは、現在Apache HTTP Serverエラー・ログの一部であり、簡単に識別できるように接頭辞weblogic:が付けられています。そのため、ディレクティブ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.

プラグイン・ログを有効にするには、LogLevelをdebugに設定します。これらのログは、ErrorLogが示すファイルに含められます。