Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性 (HA) 管理ガイド

- Previous: HTTP 負荷分散の設定
- Next: ロードバランサの設定

# 負荷分散のための Web Server の設定

ロードバランサプラグインインストールプログラムは、Web サーバーの設定ファイルに対していくつかの変更を加えます。これらの変更は、Web サーバーによって異なります。

注 –

ロードバランサプラグインは、サポートされている Web サーバーを実行するマシン上に、Sun Java System Application Server Enterprise Edition とともにインストールすることも、または個別にインストールすることもできます。インストール手順の詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Installation Guide』の第 1 章「Installing Application Server Software」(スタンドアロンの Application Server を使用している場合)、または『Sun Java Enterprise System 2005Q5 インストールガイド』(Java Enterprise System を使用している場合) を参照してください。

- 「Sun Java System Web Server に対する変更」

- 「Apache Web Server の使用」

- 「インストール」

- 「複数の Web サーバーインスタンスの設定」

## Sun Java System Web Server に対する変更

インストールプログラムは、Sun Java System Web Server の設定ファイルに次のエントリを追加します。

Web サーバーインスタンスの `magnus.conf` ファイルに、次のエントリを追加します。

    ##EE lb-pluginInit
    fn="load-modules"
    shlib="web_server_install_dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##end addition for EE lb-plugin

Web サーバーインスタンスの `obj.conf` ファイルに、次のエントリを追加します。

    <Object name=default>
    NameTrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web_server_install_dir/web_server_instance/config/loadbalancer.xml"
    <Object name="lbplugin">
      ObjectType fn="force-type" type="magnus-internal/lbplugin"
      PathCheck fn="deny-existence" path="*/WEB-INF/*"
      Service type="magnus-internal/lbplugin"
      fn="service-passthrough"
      Error reason="Bad Gateway"
      fn="send-error"
      uri="$docroot/badgateway.html"
    </object>

このコードでは、`lbplugin` は、`Object` を一意に識別する名前であり、web_server_install_dir`/`web_server_instance`/config/loadbalancer.xml` は、ロードバランサが動作するように設定されている仮想サーバーの XML 設定ファイルの場所です。

インストールが完了したら、「HTTP 負荷分散の設定」の説明に従ってロードバランサを設定します。

## Apache Web Server の使用

Apache Web Server を使用するには、ロードバランサプラグインをインストールする前に、特定の設定手順を実行する必要があります。また、ロードバランサプラグインのインストールによっても、Apache Web Server に追加の変更が加えられます。プラグインをインストールしてから、追加の設定手順を実行する必要があります。

注 –

Apache 1.3 で、複数の Apache の子プロセスが動作している場合、各プロセスは固有の負荷分散ラウンドロビンシーケンスを使用しています。たとえば、Apache の子プロセスが 2 つ動作していて、ロードバランサプラグインが 2 つのアプリケーションサーバーインスタンスに対して負荷分散する場合、最初の要求はインスタンス #1 に送信され、2 番目の要求もインスタンス #1 に送信されます。3 番目の要求はインスタンス #2 に送信され、4 番目の要求も同じくインスタンス #2 に送信されます。instance1、instance1、instance2、instance2 (以下も同じ) という、このパターンが繰り返されます。この動作は、通常予測される順序、つまり、instance1、instance2、instance1、instance2 (以下も同じ) とは異なります。Sun Java System Application Server では、Apache 用のロードバランサプラグインは Apache プロセスごとにロードバランサインスタンスをインスタンス化して、独立した負荷分散シーケンスを作成します。

`--with-mpm=worker` オプションを使用してコンパイルした場合、Apache 2.0 は動作をマルチスレッド化します。

- 「Apache Web Server を使用するための要件」

- 「ロードバランサプラグインをインストールする前の設定」

- 「Application Server インストーラによって加えられる変更」

- 「Apache セキュリティーファイルをロードバランサで動作するように設定する」

### Apache Web Server を使用するための要件

Apache Web Server の場合は、Apache のバージョンに応じて、インストールが最小要件を満たす必要があります。

#### Apache 1.3 の要件

Apache 1.3 では、ロードバランサプラグインに次のものが必要です

- `openssl-0.9.7e` (ソース)

- `mod_ssl-2.8.16-1.3.`x (ソース)。この x は Apache のバージョンを表します。mod_ssl バージョンは、Apache のバージョンに一致している必要があります。

- `gcc-3.3-sol9-sparc-local` パッケージ (Solaris SPARC の場合)

- `gcc-3.3-sol9-intel-local` パッケージ (Solaris x86 の場合)

- `flex-2.5.4a-sol9-sparc-local` パッケージ (Solaris SPARC の場合)

- `flex-2.5.4a-sol9-intel-local` パッケージ (Solaris x86 の場合)

  ソフトウェアソースは、`http://www.sunfreeware.com` で入手できます。

  さらに、Apache をコンパイルする前に、次の操作をしてください。

- Linux プラットフォームでは、同じマシンに Sun Java System Application Server をインストールします。

- Solaris オペレーティングシステムでは、`gcc` バージョン 3.3 と `make` が `PATH` に含まれており、`flex` がインストールされていることを確認してください。

- Solaris 10 オペレーティングシステムでは、OpenSSL 用の `make` を実行する前に、Solaris SPARC の場合は `/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools` に、Solaris x86 の場合は `/usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools` に格納されている `mkheaders` を実行します。

- Red Hat Enterprise Linux Advanced Server 2.1 上で `gcc` を使用する場合、そのバージョンは `gcc` 3.0 以降である必要があります。

注 –

`gcc` 以外の C 言語のコンパイラを使用するには、その C 言語のコンパイラのパスを設定して、PATH 環境変数のユーティリティーを使用可能にします。たとえば、`sh` シェルでは次のようになります。`export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:appserver_installdir/lib`

#### Apache 2 の最小要件

Apache 2.0 では、ロードバランサプラグインに次のものが必要です

- `openssl-0.9.7e (ソース)`

- `httpd-2.0.49 (ソース)`

- `gcc-3.3-sol9-sparc-local` パッケージ (Solaris SPARC の場合)。

- `gcc-3.3-sol9-intel-local` パッケージ (Solaris x86 の場合)

- `flex-2.5.4a-sol9-sparc-local` パッケージ (Solaris SPARC の場合)

- `flex-2.5.4a-sol9-intel-local` パッケージ (Solaris x86 の場合)

ソフトウェアソースは、`http://www.sunfreeware.com` で入手できます。

さらに、Apache をコンパイルする前に、次の操作をしてください。

- Linux プラットフォームでは、同じマシンに Sun Java System Application Server をインストールします。

- Solaris オペレーティングシステムでは、`gcc` バージョン 3.3 と `make` が `PATH` に含まれており、`flex` がインストールされていることを確認してください。

- Solaris 10 オペレーティングシステムでは、OpenSSL 用の `make` を実行する前に、Solaris SPARC の場合は `/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools` に、Solaris x86 の場合は `/usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools` に格納されている `mkheaders` を実行します。

- Red Hat Enterprise Linux Advanced Server 2.1 上で `gcc` を使用する場合、そのバージョンは `gcc` 3.0 以降である必要があります。

注 –

`gcc` 以外の C 言語のコンパイラを使用するには、その C 言語のコンパイラのパスを設定して、PATH 環境変数のユーティリティーを使用可能にします。たとえば、`sh` シェルでは次のようになります。`export LD_LIBRARY_PATH=` app_server_install_dir`/lib:$LD_LIBRARY_PATH`.

### ロードバランサプラグインをインストールする前の設定

Apache 用のロードバランサプラグインをインストールする前に、Apache Web Server をインストールします。Apache ソースをコンパイルし、SSL で動作するようにビルドする必要があります。この節では、ロードバランサプラグインが実行されるように Apache Web Server を正常にコンパイルするために必要な最小要件と高レベルの手順について説明します。これらの要件と手順は、ソフトウェアの Solaris および Linux バージョンにのみ適用されます。Apache の Windows バージョンについては、Apache の Web サイトを参照してください。

#### SSL 対応の Apache をインストールするには

##### 始める前に

Apache ソフトウェアがすでにダウンロードされ、圧縮解除されている必要があります。

1. OpenSSL ソースをダウンロードし、展開します。

2. OpenSSL をコンパイルしてビルドします。

   OpenSSL 0.9.7.e がインストールされている場合、Linux プラットフォームではこの手順は必要ありません。

   次のコマンドを入力します。

       cd openssl-0.9.7e
       make
       make install

   OpenSSL の詳細については、`http://www.openssl.org/`を参照してください。

3. Apache のバージョンに応じて、次のいずれかの手順に従います。

   - Apache 1.3 の場合は、次の手順に従い、`mod_ssl` を使用して Apache を設定します。

     1. `mod_ssl` ソースを展開します。

     2. `cd mod_ssl-2.8.14–1.3.x`

     3. `./configure –with-apache=../apache_1.3. x --with-ssl=../openssl-0.9.7e --prefix=install_path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so`

     このコマンドの中で、x は Apache のバージョン番号、install_path は Apache をインストールするディレクトリです。

     `mod_ssl` の詳細については、`http://www.modssl.org`を参照してください。

   - Apache 2.0 の場合は、ソースツリーを設定します。

     1. `cd http-2.0_` x.

     2. `./configure --with-ssl=` open_ssl_install_path `--prefix=` install_path `--enable-ssl --enable-so` を実行します。

        このコマンドの中で、x は Apache のバージョン番号、open_ssl_install_path は OpenSSL がインストールされているディレクトリ、および install_path は Apache をインストールするディレクトリです。

4. Linux 2.1 上の Apache の場合は、コンパイルの前に次の手順を実行します。

   1. `src/MakeFile` を開き、自動的に生成されるセクションの最後を見つけます。

   2. 自動的に生成されるセクションのあとの最初の 4 行のあとに、次の行を追加します。

          LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c
          -lsupport -lnsprwrap -lns-httpd40
          LDFLAGS+= -L/appserver_installdir/lib -L/opt/sun/private/lib

      `-L/opt/sun/private/lib` は、Application Server を Java Enterprise System インストールの一部としてインストールした場合にのみ必要であることに注意してください。

      次に例を示します。

          ## (End of automatically generated section)
          ##
          CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
          LIBS=$(EXTRA_LIBS) $(LIBS1)
          INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
          LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
          "LIBS+= -licuuc -licui18n -lnspr4 -lpthread
          -lxerces-c -lsupport -lnsprwrap -lns-httpd40
          LDFLAGS+= -L/appserver_installdir /lib -L/opt/sun/private/lib

   3. 環境変数 LD_LIBRARY_PATH を設定します。

      すべてのインストールで、次のように設定します。`appserver_install_dir/lib`

      Java Enterprise System インストールでは、`appserver_install_dir/lib:opt/sun/private/lib` に設定します。

5. 使用しているバージョンのインストール手順で説明されている方法で、Apache をコンパイルします。

   詳細については、`http://httpd.apache.org/`を参照してください。

   一般的な手順は次のとおりです。

   1. `make`

   2. `make certificate` (Apache 1.3 のみ)

   3. `make install`

      `make certificate` コマンドは、セキュリティー保護されたパスワードを要求します。このパスワードは、セキュリティー保護された Apache を起動するために必要です。忘れないようにしてください。

6. 環境に応じて Apache を設定します。

### Application Server インストーラによって加えられる変更

ロードバランサプラグインのインストールプログラムは、必要なファイルを、Web サーバーのルートディレクトリ内のディレクトリに展開します。

- Apache 1.3 の場合、このディレクトリは `libexec` です。

- Apache 2.0 の場合、このディレクトリは `modules` です。

インストールプログラムは、Web サーバーインスタンスの `httpd.conf` ファイルに次のエントリを追加します。

    <VirtualHost machine_name:443>
    ##Addition for EE lb-plugin
    LoadFile /usr/lib/libCstd.so.1
    LoadModule apachelbplugin_module libexec/mod_loadbalancer.so
    #AddModule mod_apachelbplugin.cpp
    <IfModule mod_apachelbplugin.cpp>
      config-file webserver_instance/conf/loadbalancer.xml
      locale en
    </IfModule>
    <VirtualHost machine_ip_address>
      DocumentRoot "webserver_instance/htdocs"
      ServerName server_name
    </VirtualHost>
    ##END EE LB Plugin ParametersVersion 7

### Apache セキュリティーファイルをロードバランサで動作するように設定する

Apache Web Server は、ロードバランサプラグインとの適切な動作のために、正しいセキュリティーファイルを保持している必要があります。

1. apache_install_dir の下に `sec_db_files` という名前のディレクトリを作成します。

2. application_server_domain_dir`/config/`*.db を apache_install_dir`/sec_db_files` にコピーします。

3. プラットフォームに応じて、追加の設定を実行します。

   - Solaris プラットフォームの場合:

     apache_install_dir`/bin/apachectl` スクリプト内の LD_LIBRARY_PATH に、パス `/usr/lib/mps/secv1` を追加します。このパスは、`/usr/lib/mps` の前に追加する必要があります。

   - Linux の場合:

     apache_install_dir`/bin/apachectl` スクリプト内の LD_LIBRARY_PATH に、パス `/opt/sun/private/lib` を追加します。このパスは、`/usr/lib` の前に追加する必要があります。

   - Microsoft Windows の場合:

     1. Path 環境変数に新しいパスを追加します。

        「スタート」->「設定」->「コントロール パネル」->「システム」->「詳細設定」->「環境変数」->「システム環境変数」の順にクリック します。

        Path 環境変数に application_server_install_dir`/bin` を追加します。

     2. 環境変数 NSPR_NATIVE_THREADS_ONLY を 1 に設定します。

        「環境変数」ウィンドウで、「システム環境変数」の下の「新規」をクリックします。「変数名」に「NSPR_NATIVE_THREADS_ONLY」を、「変数値」に「1」を入力します。

     3. マシンを再起動します。

## Microsoft IIS に対する変更

ロードバランサプラグインを使用するように Microsoft Internet Information Services (IIS) を設定するには、Windows Internet Services Manager で特定のプロパティーを変更します。Internet Services Manager は、「コントロールパネル」フォルダの「管理ツール」フォルダに置かれています。

これらの変更は、Sun Java System Application Server をインストールしてから行います。

### ロードバランサプラグインを使用するように Microsoft IIS を設定するには

1. Internet Services Manager を開きます。

2. プラグインを有効にする Web サイトを選択します。

   この Web サイトは通常、デフォルトの Web サイトと名付けられます。

3. この Web サイト上で右クリックして「プロパティー」を選択し、「プロパティー」ノートブックを開きます。

4. 次の手順に従って、新しい ISAPI フィルタを追加します。

   1. 「ISAPI フィルタ」タブを開きます。

   2. 「追加」をクリックします。

   3. 「フィルタ名」フィールドに、「`Application Server`」と入力します。

   4. 「実行ファイル」フィールドに、「`C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.dll`」と入力します。

   5. 「了解」をクリックして、「プロパティー」ノートブックを閉じます。

5. 新しい仮想ディレクトリを作成および設定します。

   1. デフォルトの Web サイト上で右クリックして「新規」を選択し、「仮想ディレクトリ」を選択します。

      「仮想ディレクトリの作成ウィザード」が開きます。

   2. 「エイリアス」フィールドに、「`sun-passthrough`」と入力します。

   3. 「ディレクトリ」フィールドに、「`C:\Inetpub\wwwroot\sun-passthrough`」と入力します。

   4. 「実行パーミッション」チェックボックスにチェックマークを付けます。

      ほかのすべてのパーミッション関連のチェックボックスは、チェックしないでおきます。

   5. 「完了」をクリックします。

6. システムの `PATH` 環境変数に、`sun-passthrough.dll` ファイルのパスおよび application_server_install_dir`/bin` を追加します。

7. マシンを再起動します。

8. Web サーバーを停止してから起動して、新しい設定を反映させます。

   Web サーバーを停止するには、Web サイト上で右クリックして「`停止`」を選択します。Web サーバーを起動するには、Web サイト上で右クリックして「`起動`」を選択します。

9. Web サーバー、ロードバランサプラグイン、および Application Server が正常に動作していることを確認します。

   Web ブラウザに以下のように入力して Web アプリケーションのコンテキストルートにアクセスします。`http://webserver_name/ web_application`。ここで、webserver_name は Web サーバーのホスト名または IP アドレスであり、web_application は `C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties` ファイルに一覧表示したコンテキストルートです。

### 自動的に設定される sun-passthrough プロパティー

インストーラは、`sun-passthrough.properties` 内に次のプロパティーを自動的に設定します。デフォルト値は変更可能です。

プロパティー | 定義 | デフォルト値
--- | --- | ---
lb-config-file | ロードバランサ設定ファイルへのパス | `IIS_www_root\sun-passthrough\loadbalancer.xml`
log-file | ロードバランサログファイルへのパス | `IIS_www_root\sun-passthrough\lb.log`
log-level | Web サーバーのログレベル | INFO

## 複数の Web サーバーインスタンスの設定

Sun Java System Application Server インストーラでは、1 台のマシンに複数のロードバランサプラグインをインストールできません。1 台のマシンの 1 つまたは複数のクラスタ内に、ロードバランサプラグインとともに複数の Web サーバーを置くには、いくつかの手順を手動で実行してロードバランサプラグインを設定する必要があります。

### 複数の Web サーバーインスタンスを設定するには

1. ロードバランサプラグインを使用するように新しい Web サーバーインスタンスを設定します。

   「Sun Java System Web Server に対する変更」、「Apache Web Server の使用」、または 「インストール」の手順に従います。

2. DTD ファイルをコピーします。

   既存の Web サーバーインスタンスの `config` ディレクトリから、`sun-loadbalancer_1_1.dtd` を新しいインスタンスの `config` ディレクトリにコピーします。

3. ロードバランサ設定ファイルを設定します。次のいずれかを実行します。

   - 既存のロードバランサ設定をコピーします。

     既存のロードバランサ設定を使用して、既存の Web サーバーインスタンスの `config` ディレクトリから、`loadbalancer.xml` ファイルを新しいインスタンスの `config` ディレクトリにコピーします。

   - 新しいロードバランサ設定を作成します。

     1. `asadmin create-http-lb-config` を使用して、新しいロードバランサ設定を作成します。

     2. `asadmin export http-lb-config` を使用して、新しい設定を `loadbalancer.xml` ファイルにエクスポートします。

     3. `loadbalancer.xml` ファイルを、新しい Web サーバーの `config` ディレクトリにコピーします。

        ロードバランサ設定を作成し、それを `loadbalancer.xml` ファイルにエクスポートする方法については、「HTTP ロードバランサ設定の作成」を参照してください。

- Previous: HTTP 負荷分散の設定
- Next: ロードバランサの設定

- © 2010, Oracle Corporation and/or its affiliates