Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド

Apache Web Server の使用

ロードバランサプラグインは、Apache Web Server 2.2.x および 2.0.x をサポートします。Apache Web Server を使用するには、ロードバランサプラグインをインストールする前とインストールしたあとに、特定の設定手順を実行する必要があります。また、ロードバランサプラグインのインストールによっても、Apache Web Server に追加の変更が加えられます。プラグインをインストールしてから、追加の設定手順を実行する必要があります。ロードバランサプラグインは、Apache Web Server の 32 ビットバージョンのみをサポートします。

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

Apache Web Server を使用するには、インストール環境が最小要件を満たしている必要があります。

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

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

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


注 –

gcc 以外の C 言語のコンパイラを使用するには、PATH 環境変数内でその C 言語のコンパイラと make ユーティリティーのパスを設定します。


Apache 2.0.x への Apache Web Server Patch の適用

Apache 2.0.x にロードバランサプラグインをインストールする前に、Apache Web Server の問題 12355 に関するパッチを適用します。この問題の詳細については、http://issues.apache.org/bugzilla/show_bug.cgi?id=12355 を参照してください。このパッチは、Apache 2.0.x で自動適用機能を使用するために必要です。パッチを適用するには、次の手順に従います。

  1. http-2.0.59.tar を展開し、httpd-2.0.59 ディレクトリに移動します。

  2. http://issues.apache.org/bugzilla/attachment.cgi?id=16495 からパッチをダウンロードして、12355.diff などのファイル名で保存します。

  3. httpd-2.0.59/modules/ssl ディレクトリから、次のコマンドを実行します。

    patch < 12355.diff

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

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


注 –

ここで説明する手順は、http://httpd.apache.org/docs に示されている手順からの抜粋です。SSL 対応の Apache の詳細なインストール方法については、この Web サイトを参照してください。


ProcedureSSL 対応の Apache をインストールする

始める前に

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

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

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

    完全なインストール手順については、OpenSSL を圧縮解除したディレクトリにある INSTALL という名前のファイルを参照してください。このファイルには、OpenSSL をユーザー指定の場所にインストールする方法に関する情報が含まれています。

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

  3. Apache をダウンロードし、展開します。

    Apache は http://httpd.apache.org から入手できます。

  4. Apache をコンパイルしてビルドします。ソースツリーを設定します。

    1. Apache 2.0.x では、コマンド cd http-2.0_ x を使用します。Apache 2.2.x では、コマンド cd http-2.2_x を使用します。

    2. 次のコマンドを実行します。

      ./configure --with-ssl= OpenSSL-install-path --prefix= Apache-install-path --enable-ssl --enable-so

      このコマンドの中で、x は Apache のバージョン番号、open-ssl-install-path は OpenSSL がインストールされているディレクトリへの絶対パス、および Apache-install-path は Apache をインストールするディレクトリです。

      Apache 2 サーバーが HTTPS 要求を受け入れる場合、--enable-ssl --enable-so オプションを使う必要があるだけです。

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


      注 –

      Apache 2.2 では、--with-included-apr オプションを使用して、バンドル版の Apache Portable Runtime (APR) を構築します。


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

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

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

      LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c 
      -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir/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/application-server-install-dir /lib -L/opt/sun/private/lib
    3. 環境変数 LD_LIBRARY_PATH を設定します。

      スタンドアロンのインストールでは、as-install/lib を追加します。

      Java Enterprise System インストールでは、これを Enterprise Server に次のように設定します。 as-install/lib:opt/sun/private/lib

      Solaris 9 を使用している場合、LD_LIBRARY_PATH/usr/local/lib を追加します。

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

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

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

    1. make

    2. make install


    注 –

    Apache 2.2.x では、apache-install-location/conf/httpd.conf ファイルで、Include conf/extra/httpd-vhosts.conf の行をコメント解除します。


DAS 証明書のエクスポート

次のコマンドを使用して、DAS 証明書を手動でエクスポートする必要があります。

appserver-install-dir/lib/upgrade/certutil -L -d appserver-instance-dir/config -n s1as -a -o sjsas.crt

この証明書は、ロードバランサプラグインのインストール時に必要になります。ロードバランサプラグインをインストールする前に、必ずこのタスクを実行してください。

インストーラによる Apache Web Server 設定に対する変更

Enterprise Server のインストールプログラムは、ロードバランサプラグインのインストール中に、Apache 設定に対して次の変更を行います。ロードバランサプラグインを手動でインストールするように選択した場合は、これらの手順を手動で実行する必要があります。インストールプログラムは、Web サーバーのルートディレクトリにある modules ディレクトリに、必要なファイルを展開します。


注 –

ロードバランサプラグインをインストールする前に、必ず DAS 証明書をエクスポートしてください。


Apache 2.0.x の場合、インストーラは Web サーバーインスタンスの httpd.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule mod_apache2lbplugin.cpp
<IfModule mod_apache2lbplugin.cpp> 
  config-file webserver-instance/httpd/conf/loadbalancer.xml
  locale en
</IfModule>
<VirtualHost machine-ip-address>
  DocumentRoot "webserver-instance/httpd/htdocs"
  ServerName server-name
</VirtualHost>
##END EE LB Plugin Parameters

Apache 2.2.x の場合、インストーラは Web サーバーインスタンスの httpd.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
LoadFile /usr/lib/libCstd.so.1 (For Solaris SPARC only)
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule apachelbplugin_module
<IfModule apachelbplugin_module> 
  config-file Apache-install-location/conf/loadbalancer.xml
  locale en
</IfModule>
##END EE LB Plugin Parameters

Apache 2.2.x の場合、インストーラは Web サーバーインスタンスの httpd-vhosts.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
<VirtualHost machine-ip-address> 
  ServerName host-name
 DocumentRoot Apache-install-location/htdocs
</VirutalHost>
##END EE LB Plugin Parameters

インストーラによって行われるその他の変更により、使用中の環境で Apache の config-file および ssl-config が正しい値に設定されます。ssl-config ファイルは、Apache 2.0.x の Apache-install-location/conf/ssl.conf または Apache-install-location/conf/extras/httpd-ssl.conf に格納されます。config ファイルは、Apache 2.0.x および Apache 2.2.x の Apache-install-location /conf/httpd.conf に格納されます。変更内容の概要は次のとおりです。

DAS 証明書のインポート

Enterprise Server のインストールプログラムは、次のタスクをユーザーに代わって実行します。

serial-number の値は、DAS 証明書ファイルから生成する必要があります。serial-number を生成するには、コマンド keytool -printcert -file sjsas.crt を使用します。このコマンドの出力の小文字をすべて大文字に変更して、serial-number として使用します。このコマンドは、使用しているアプリケーションサーバーの名前も表示します。

HTTP ロードバランサプラグインをインストールしたあとの Apache の設定

この節では、Apache Web Server のインストール後に必要な変更を説明します。

スティッキラウンドロビンを有効にするための httpd.conf パラメータの変更

スティッキラウンドロビン機能を使用するには、Apache 2.2.x の apache-install-location/conf/extra/ httpd-mpm.conf ファイル、または Apache 2.0.x の apache-install-location /conf/httpd.conf ファイルに次の変更を行います。

prefork MPM セクションで、パラメータ StartServers および maxclients の値が 1 に設定されていることを確認します。ほかの値に設定されている場合は、新しいセッション要求ごとに新しい Apache プロセスが生成され、ロードバランサプラグインが初期化されて、要求が同じインスタンスで受信されます。

Apache 2.2.x では、apache-install-location/conf/httpd.conf ファイルの次の行のコメントを解除します。


Include conf/extra/httpd-mpm.conf

ロードバランサを使用するためのセキュリティーファイルの設定

Apache Web Server は、ロードバランサプラグインと連動するために正しいセキュリティーファイルを保持している必要があります。ロードバランサは、これらのセキュリティーデータベースファイルを必要とする NSS (Network Security Service) ライブラリに依存しています。これらのセキュリティーデータベースファイルを Enterprise Server から取得する必要があるため、Enterprise Server のインストールは、Web Server によってアクセス可能な場所で実行される必要があります。

ロードバランサが機能するようにセキュリティーファイルを設定する

Apache ユーザーへのアクセス権の付与

Apache ユーザーが、apache-install-location/conf/ ディレクトリとそのディレクトリ内のファイルに対する必要なアクセス許可を持っていることを確認します。Apache ユーザーとは、その配下で Apache サーバーが要求に応答する UNIX ユーザーのことです。このユーザーはファイル httpd.conf で定義されます。root ユーザーとして Apache をインストールした場合は、apache-install-location/conf/httpd.conf 内の、Apache ユーザーおよびグループの設定に関する注意事項に目を通します。


注 –

ユーザーおよびグループの設定が、このディレクトリに対するセキュリティー要件を満たしていることを確認します。たとえば、このディレクトリへのアクセスを制限するには、同じユーザーグループにディレクトリの所有者として Apache ユーザーを追加します。


ロードバランサプラグインの初期化

Apache の起動時にロードバランサプラグインが初期化されることを保証するには、次のファイルに対する読み取りおよび書き込みアクセス権を Apache ユーザーに付与します。

自動適用を有効にするディレクトリアクセス権の変更

自動適用機能が正常に動作することを保証するには、apache-install-location/conf/ ディレクトリに対する読み取り、書き込み、および実行のアクセス権を Apache ユーザーに付与します。

Apache ユーザーがこのディレクトリの所有者と同じグループに属している場合は、モードを 775 に変更します。Apache ユーザーがこのディレクトリの所有者と異なるグループに属している場合は、モードを 777 に変更します。

ProcedureApache のセキュリティー証明書を作成する

次の手順は、Apache で HTTPS 要求をサポートするために必要となるものです。

Apache でセキュリティー証明書を設定する方法については、http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html および http://www.modssl.org/docs/2.8/ssl_faq.html の手順を参照してください。次の手順は、これらの Web サイトから抜粋したものです。

  1. 次の環境変数を設定します。

    OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf

  2. 次のコマンドを実行して、サーバー証明書とキーを作成します。

    openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365

    共通名を求められたら、Apache を実行する予定のホスト名を入力します。その他のすべてのプロンプトに対しては、環境ごとの特定の要件を満たす値を入力してください。

    このコマンドによって newreq.pem が作成されます。

  3. openssl コマンドを実行した場所から、新しく作成した newreq.pem を開きます。

  4. BEGIN CERTIFICATE で始まり END CERTIFICATE で終わる部分の行をすべてコピーして、Apache-install-dir /conf/ssl.crt/server.crt に貼り付けます。次に例を示します。


    -----BEGIN CERTIFICATE-----
    ....
    ...
    -----END CERTIFICATE-----
  5. BEGIN RSA PRIVATE KEY で始まる行から END RSA PRIVATE KEY で終わる行までをコピーして、Apache-install-dir /conf/ssl.key/server.key に貼り付けます。次に例を示します。


    -----BEGIN RSA PRIVATE KEY-----
    ...
    ...
    ...
    -----END RSA PRIVATE KEY-----
  6. Apache 2.0.x の Apache-install-dir /conf/ssl.conf または Apache 2.2.x の Apa he-install-d r /conf/extra/httpd-ssl.conf で、変数 SSLCertificateKeyFileSSLCertificateFile が正しい値に設定されていることを確認します。

  7. ServerName が www.example.com でないことを確認します。ServerName を Apache を実行する実際のホスト名にして、サーバー証明書とキーを作成するときに入力した Common Name と一致させます。

Solaris および Linux 上での Apache の起動

一般的に、Apache は、Enterprise Server をインストールしたユーザーと同じユーザーで起動します。次の条件にあてはまる場合は、Apache をルートとして起動する必要があります。

Apache を SSL モードで起動するには、次のコマンドのいずれかを使用します。

Apache 2.0.x では apachectl startssl または apachectl -k start -DSSL。Apache 2.2.x では、apachectl start を使用します。

必要に応じて、Apache サーバーの起動に関する最新情報を Apache の Web サイトで確認してください。

設定の確認

  1. ロードバランサプラグインをインストールします。プラグインの詳細なインストール手順については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』を参照してください。インストールの間に、DAS 証明書へのパスを指定します。

  2. Application Server 管理コンソールにログインし、新しいクラスタを作成します。新しいクラスタを作成する手順については、管理コンソールのオンラインヘルプを参照してください。

  3. 新しい HTTP ロードバランサを作成します。ロードバランサの作成中、デバイスのホストとして Web サーバーホストを、デバイスポートとして Web サーバーの SSL ポートを指定し、前の手順で作成したクラスタをターゲットとして選択します。新しい HTTP ロードバランサを作成するための詳細な手順については、管理コンソールのオンラインヘルプを参照してください。

  4. DAS と Web サーバーの間の通信が正常に機能していることを確認するには、管理コンソールで「HTTP ロードバランサ」ノードに移動して「HTTP ロードバランサ」をクリックします。表示された「ロードバランサデバイス設定」ページで、「テスト接続」ボタンをクリックします。

    ロードバランサの作成中に「変更を自動的に適用」オプションを有効にしなかった場合は、「エクスポート」タブに移動して「今すぐ適用」をクリックすることによって、ロードバランサの設定を手動でエクスポートする必要があります。

  5. テスト接続に失敗した場合は、Application Server ドメインログおよび Web サーバーのログを確認して問題に対処します。また、すべての接続手順が正しく実行されたかどうかを確認します。