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

前
 
次
 

4 Apache HTTP Serverプラグインのインストールと構成

この章では、Apache HTTP Serverプラグインをインストールして構成する方法を説明します。内容は以下のとおりです。


注意:

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


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

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

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

Apache HTTP Serverプラグインをインストールする前に、次のことを行います:

  • 1.2項「バージョン1.1プラグインの入手」の説明に従って、Apache HTTP Serverプラグインをダウンロードします。

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

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

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

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

    README.txt

    このファイルです。

    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

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

Apache HTTP Serverプラグインは、UNIXプラットフォーム用の共有オブジェクト(.so)およびWindows用のDLLとして配布されます。

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

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

  2. Windowsの場合、ダウンロードしたプラグイン・ファイルを解凍した場所でlib/mod_wl.soまたはlib\mod_wl.dllを見つけます。例: /home/myhome/weblogic-plugins-1.1/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-1.1/lib/mod_wl.so
    
  7. 次のコマンドを実行して、httpd.confファイルの構文を確認します。

    • Windowsの場合

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

      > APACHE_HOME/bin/apachectl -t
      

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

    Syntax OK
    

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

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

4.2.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
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </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
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </IfModule>
    

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

    <IfModule mod_weblogic.c>
     WebLogicHost my-weblogic.server.com
     WebLogicPort 7001
     MatchExpression *.jsp
     MatchExpression *.xyz
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </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プラグイン・モジュールのハンドラを指定します。たとえば、次のLocationブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。

    <Location /weblogic>
    SetHandler weblogic-handler
    PathTrim /weblogic
    </Location>
    

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

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

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

      <Location /weblogic>
       SetHandler weblogic-handler 
      </Location> 
      
      <IfModule mod_weblogic.c>
       WebLogicHost localhost
       WebLogicPort 7001
       PathTrim /weblogic
      </IfModule> 
      

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

      <Location /weblogic>
       SetHandler weblogic-handler
       PathTrim /weblogic
      </Location>
      
    • WebLogic Server Apacheプラグインの現在の実装では、Apache SSLに関して複数の証明書ファイルの使用はサポートされていません。

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

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

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

      <Location /bea_wls_internal/iiop>
       SetHandler weblogic-handler
      </Location>
      
  7. Apache HTTP Serverプラグインの追加パラメータを定義します。

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

    • 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にリクエストを送信します。レスポンスを検証します。

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

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

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

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

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

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

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

    ...   LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
    
      <IfModule mod_weblogic.c>
        WebLogicHost wls-host
        WebLogicPort wls-port
        Debug ALL
        WLLogFile /tmp/wl-proxy.log
      </IfModule>
    
      <Location /mywebapp>
        SetHandler weblogic-handler
      </Location>
      ...
    
  3. 次のコマンドを実行して${PLUGIN_HOME}/lib isdをLD_LIBRARY_PATHにインクルードします。

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

    注意:

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


  4. プロンプトに対し、次を入力してApacheサーバーを起動します:

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

4.2.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ファイルが含まれています。

4.2.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)を含める必要があります。

  • 環境内に構成されているすべての仮想ホストのログ・ファイルを1つのみにしたい場合は、グローバル・プロパティを使用すれば実現できます。各仮想ホストでDebugWLLogFileおよびWLTempDirプロパティを指定するかわりに、<IfModule>タグで一度に指定できます。

  • httpd.confファイルのサンプル:

    <IfModule mod_weblogic.c>
     WebLogicCluster johndoe02:8005,johndoe:8006
     Debug ON
     WLLogFile c:/tmp/global_proxy.log 
     WLTempDir "c:/myTemp"
     DebugConfigInfo ON
     KeepAliveEnabled ON
     KeepAliveSecs 15
    </IfModule>
    
    <Location /jurl>
     SetHandler weblogic-handler
     WebLogicCluster agarwalp01:7001
    </Location>
    
    <Location /web>
     SetHandler weblogic-handler
     PathTrim/web
     Debug OFF
     WLLogFile c:/tmp/web_log.log
    </Location>
     
    <Location /foo>
     SetHandler weblogic-handler
     PathTrim/foo
     Debug ERR
     WLLogFile c:/tmp/foo_proxy.log
    </Location>
    
  • /jurl/*に一致するすべてのリクエストではDebug LevelがALLに設定され、ログ・メッセージがc:/tmp/global_proxy.logファイルに記録されます。/web/*に一致するすべてのリクエストではDebug LevelがOFFに設定され、ログ・メッセージは記録されなくなります。/foo/*に一致するすべてのリクエストではDebug LevelがERRに設定され、ログ・メッセージはc:/tmp/foo_proxy.logファイルに記録されます。

  • <Files>ブロックではなくMatchExpression文を使用することをお薦めします。

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

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

例4-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>
####################################################

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

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

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

例4-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>

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

例4-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>

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

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

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

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

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

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

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

<Location /weblogic>
 SetHandler weblogic-handler
 PathTrim /weblogic
 ErrorPage http://myerrorpage1.mydomain.com
</Location>

<Location /servletimages>
 SetHandler weblogic-handler
 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>