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 は動作をマルチスレッド化します。
Apache Web Server の場合は、Apache のバージョンに応じて、インストールが最小要件を満たす必要があります。
Apache 1.3 では、ロードバランサプラグインに次のものが必要です。
openssl-0.9.8b (ソース)
mod_ssl-2.8.n -1.3.x (ソース)。ここで、n は使用する Apache のバージョンに対応する mod_ssl の正しいバージョンを表し、x は Apache のバージョンを表します。
gcc-3.3-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
gcc-3.3-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた gcc (Solaris 10 の場合)
flex-2.5.4a-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
flex-2.5.4a-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた flex (Solaris 10 の場合)
ソフトウェアソースは、http://www.sunfreeware.com で入手できます。
使用する Apache のバージョンに対応する mod_ssl の正しいバージョンなど、mod_ssl の詳細については、http://www.modssl.org を参照してください。
さらに、Apache をコンパイルする前に、次の操作をしてください。
Linux 2.1 プラットフォームでは、同じマシンに Sun Java System Application Server をインストールします。
Solaris 9 オペレーティングシステムでは、pkgadd を使用して gcc と flex をインストールします。pkgadd にはルートのアクセスが必要です。
Solaris 9 オペレーティングシステムでは、gcc バージョン 3.3 と make が PATH に含まれており、flex がインストールされていることを確認してください。
Solaris 10 オペレーティングシステムでは、Java Enterprise System インストール時に、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:application-server-install-dir /lib
Apache 2 では、ロードバランサプラグインに次のものが必要です。
openssl-0.9.8b (ソース)
httpd-2.0.49 (ソース)
gcc-3.3-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
gcc-3.3-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた gcc (Solaris 10 の場合)
flex-2.5.4a-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
flex-2.5.4a-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた flex (Solaris 10 の場合)
ソフトウェアソースは、http://www.sunfreeware.com で入手できます。
さらに、Apache をコンパイルする前に、次の操作をしてください。
Linux プラットフォームでは、同じマシンに Sun Java System Application Server をインストールします。
Solaris 9 オペレーティングシステムでは、pkgadd を使用して gcc および flex をインストールします。pkgadd にはルートのアクセスが必要です。
Solaris 9 オペレーティングシステムでは、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 言語のコンパイラを使用するには、PATH 環境変数内でその C 言語のコンパイラと make ユーティリティーのパスを設定します。
Apache 用のロードバランサプラグインをインストールする前に、Apache Web Server をインストールします。Apache ソースをコンパイルし、SSL で動作するようにビルドする必要があります。この節では、ロードバランサプラグインが実行されるように Apache Web Server を正常にコンパイルするために必要な最小要件と手順の概要について説明します。これらの要件と手順は、ソフトウェアの Solaris および Linux バージョンにのみ適用されます。Apache の Windows バージョンについては、Apache の Web サイトを参照してください。
ここで説明する手順は、http://httpd.apache.org/docs に示されている手順から抜粋したものです。SSL 対応の Apache の詳細なインストール方法については、この Web サイトを参照してください。
Apache ソフトウェアがすでにダウンロードされ、圧縮解除されている必要があります。
OpenSSL ソースを http://openssl.org からダウンロードし、展開します。
OpenSSL をコンパイルしてビルドします。
OpenSSL 0.9.7.e がインストールされている場合、Linux 3.0 プラットフォームではこの手順は必要ありません。Linux 4.0 ではこの手順が必要です。
完全なインストール手順については、OpenSSL を圧縮解除したディレクトリにある INSTALL という名前のファイルを参照してください。このファイルには、OpenSSL をユーザー指定の場所にインストールする方法に関する情報が含まれています。
OpenSSL の詳細については、http://www.openssl.org/を参照してください。
Apache をダウンロードし、展開します。
Apache は http://httpd.apache.org から入手できます。
Apache をコンパイルしてビルドします。
Apache のバージョンに応じて、次のいずれかの手順に従います。
Apache 1.3 の場合は、次の手順に従い、mod_ssl を使用して Apache を設定します。
mod_ssl ソースを展開します。
次のように入力します。
cd mod_ssl-2.8.n–1.3.x
次のように入力します。
./configure –with-apache=../apache_1.3.x --with-ssl=../openssl-0.9.8b --prefix=Apache-install-path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so
このコマンドの中で、n は使用する Apache のバージョンに対応する mod_ssl の正しいバージョン、x は Apache のバージョン番号、Apache-install-path は Apache をインストールするディレクトリです。
使用する Apache のバージョンに対応する mod_ssl の正しいバージョンなど、mod_ssl の詳細については、http://www.modssl.org を参照してください。
Apache 2 の場合は、ソースツリーを設定します。
cd http-2.0_x.
次のコマンドを実行します。
./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 オプションを使う必要があるだけです。
Apache 2 の場合、Apache の ssl.conf および httpd.conf ファイル内に、ユーザーの環境に対応する正しい値が格納されていることを確認してください。
ssl.conf では、VirtualHost default:port に対して、デフォルトのホスト名とポートを、Apache 2 がインストールされているローカルシステムのホスト名とサーバーのポート番号に置き換えます。
この変更を行わないと、ロードバランサは機能しません。Solaris Apache が起動しない可能性があり、Linux では HTTPS 要求が機能しない可能性があります。
ssl.conf では、ServerName www.example.com:443 の www.example.com を、Apache 2 がインストールされているローカルシステムのホスト名に置き換えます。
この変更を行わないと、セキュリティー証明書がインストールされている場合に Apache を起動すると次の警告が表示されます。
[warn] RSA server certificate CommonName (CN) hostname does NOT match server name! |
Apache 2 に対する証明書のインストールについては、「Apache 2 のセキュリティー証明書を作成する」を参照してください。
httpd.conf では、ServerName www.example.com:80 に対して、www.example.com を Apache 2 がインストールされているローカルシステムのホスト名に置き換えます。
この変更を行わないと、Apache を起動したときに、システムがサーバーの完全修飾ドメイン名を特定できなかったことと、重複する VirtualHost エントリが存在することを示す警告が表示されます。
|
root ユーザーとして Apache をインストールした場合は、apache-install-location/conf/httpd.conf の User と Group の設定について、注意をよく読んでください。Apache は、httpd.conf に記述されたユーザーとして実行されます。Apache の起動時にロードバランサプラグインが初期化されるようにするには、loadbalancer.xml ファイルと sun-loadbalancer_1_1.dtd ファイル (apache-install-location/conf に存在する) に、このユーザーに適切なファイルアクセス権が必要です。
Linux 2.1 上の Apache の場合は、コンパイルの前に次の手順を実行します。
src/MakeFile を開き、自動的に生成されるセクションの最後を見つけます。
自動的に生成されるセクションのあとの最初の 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
環境変数 LD_LIBRARY_PATH を設定します。
スタンドアロンのインストールでは、これを Application Server に次のように設定します。install-dir/lib
Java Enterprise System インストールでは、これを Application Server に次のように設定します。install-dir/lib:opt/sun/private/lib です。
Solaris 9 を使用している場合、LD_LIBRARY_PATH に/usr/local/lib を追加します。
使用しているバージョンのインストール手順で説明されている方法で、Apache をコンパイルします。
詳細については、http://httpd.apache.org/を参照してください。
一般的な手順は次のとおりです。
make certificate コマンドは、セキュリティー保護されたパスワードを要求します。このパスワードは、セキュリティー保護された Apache を起動するために必要です。忘れないようにしてください。
ロードバランサプラグインのインストールプログラムは、必要なファイルを、Web サーバーのルートディレクトリ内のディレクトリに展開します。
Apache 1.3 の場合、このディレクトリは libexec です。
Apache 2 の場合、このディレクトリは 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 2 の場合、このモジュールは mod_apache2lbpblugin.cpp です。
Apache Web Server は、ロードバランサプラグインと連動するために正しいセキュリティーファイルを保持している必要があります。ロードバランサは、これらのセキュリティーデータベースファイルを必要とする NSS (Network Security Service) ライブラリに依存しています。これらのセキュリティーデータベースファイルを Application Server から取得する必要があるため、Application Server のインストールは、Web Server によってアクセス可能な場所で実行される必要があります。
Apache-install-dir の下に sec_db_files という名前のディレクトリを作成します。
セキュリティーデータベースファイルを、Application Server から作成したディレクトリにコピーします。
domain-dir/config/*.db を、Apache-install-dir/sec_db_files にコピーします。
プラットフォームに応じて、追加の設定を実行します。
Solaris プラットフォームの Java Enterprise System インストールの場合:
Apache-install-dir/bin/apachectl スクリプト内の LD_LIBRARY_PATH に、パス /usr/lib/mps/secv1 を追加します。このパスは、/usr/lib/mps の前に追加する必要があります。
Linux プラットフォームの Java Enterprise System インストールの場合:
Apache-install-dir/bin/apachectl スクリプト内の LD_LIBRARY_PATH に、パス /opt/sun/private/lib を追加します。このパスは、/usr/lib の前に追加する必要があります。
Microsoft Windows の場合:
次の手順は、Apache で HTTPS 要求をサポートするために必要となるものです。
Apache でのセキュリティー証明書の設定については、http://http.apache.org/docs/2.2/ssl/ssl_faq.html および http://www.modssl.org/docs/2.8/ssl_faq.html の手順を参照してください。次の手順は、これらの Web サイトから抜粋したものです。
適切な OpenSSL ディレクトリに移動します。
Solaris 10 を使用している場合は、プリインストールされている OpenSSL を使用して証明書を作成します。cd /usr/sfw/bin
Solaris 9 または Linux を使用している場合は、OpenSSL をインストールしたディレクトリに移動します。「SSL 対応の Apache をインストールする」の手順に従って、OpenSSL の configure および make をあらかじめ実行するようにしてください。
環境変数 OPENSSL_CONF= OpenSSL-installation-directory/apps/openssl.cnf を設定します。
次のコマンドを実行して、サーバー証明書とキーを作成します。
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365
共通名を求められたら、Apache を実行する予定のホスト名を入力します。その他のすべてのプロンプトに対しては、環境ごとの特定の要件を満たす値を入力してください。
このコマンドによって newreq.pem が作成されます。
openssl コマンドを実行した場所から、新しく作成した newreq.pem を開きます。
BEGIN CERTIFICATE で始まる行から END CERTIFICATE で終わる行までをコピーして、Apache-install-dir/conf/ssl.crt/server.crt に貼り付けます。次に例を示します。
-----BEGIN CERTIFICATE----- .... ... -----END CERTIFICATE----- |
BEGIN RSA PRIVATE KEY で始まる行から END RSA PRIVATE KEY で終わる行までをコピーして、Apache-install-dir/conf/ssl.key/server.key に貼り付けます。次に例を示します。
-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- |
Apache-install-dir/conf/ssl.conf 内の変数 SSLCertificateKeyFile および SSLCertificateFile に正しい値が設定されていることを確認します。
ServerName が www.example.com ではないことを確認します。ServerName を Apache を実行する実際のホスト名にして、サーバー証明書とキーを作成するときに入力した Common Name と一致させます。
一般的に、Apache は、Application Server をインストールしたユーザーと同じユーザーで起動します。次の条件にあてはまる場合は、Apache をルートとして起動する必要があります。
Java Enterprise System ユーザーである場合。
1024 より小さいポート番号を使用した場合。
Apache を起動したユーザーとは異なるユーザーとして実行する場合。
Apache を SSL モードで起動するには、次のコマンドのいずれかを使用します。
apachectl startssl または apachectl -k start -DSSL
必要に応じて、Apache サーバーの起動に関する最新情報を Apache の Web サイトで確認してください。