Sun Cluster HA for Apache をインストールする前に、Apache 構成ファイル (httpd.conf) の以下の情報を更新する必要があります。
ホスト名を含む ServerName 命令。Sun Cluster HA for Apache の高可用性を実現するには、サーバーのアクセスに使用されるネットワークリソース (論理ホスト名または共有アドレス) の名前を、この命令に設定します。論理ホスト名または共有アドレスは、クラスタのインストール時に設定されています。設定されていない場合は、『Sun Cluster 3.0 ソフトウェアのインストール』の論理ホスト名と共有アドレスの設定に関する情報を参照して設定してください。
BindAddress 命令。論理ホストまたは共有アドレスをこの命令に設定する必要があります。Apache は、INADDR_ANY にバインドするように設定できるため、Apache データサービスまたは複数のデータサービスの複数のインスタンスを同一ノード上で実行する場合は、各インスタンスを一意のネットワークリソースとポート番号にバインドする必要があります。
ServerType 命令。デフォルトの standalone に設定する必要があります。
ServerRoot 命令。サーバーの conf および log サブディレクトリが通常配置されるディレクトリツリーの最上位を指定します。この命令にはデフォルト値はありません。
クラスタファイルシステムをサーバールートの場所として使用する場合は、Apache ソフトウェアのみを単一のファイルシステムにインストールし、データサービスを実行するすべてのノードが Apache にアクセスできるように設定する必要があります。バイナリファイルの配置については、「アプリケーションバイナリの格納先の決定」を参照してください。
単一の Apache バイナリを使用する複数のインスタンスを持つことができます。構成ファイルの場所は、Confdir_list リソースプロパティで指定します。次の例を参照してください。
(Apache バイナリの場所 -- Bin_dir プロパティの値) /global/apache/bin (構成ファイルの場所 -- Confdir_list プロパティ) /global/websites/dev/conf /global/websites/sqa/conf (httpd.conf ファイルの場所) /global/websites/dev/conf/httpd.conf /global/websites/sqa/conf/httpd.conf |
設定を確認するときなどに、手作業でインスタンスを起動するには、次のコマンドを使用します。Resource Group Manager (RGM) の指示に従う場合は、該当するデータサービスは次のコマンドを発行し、インスタンスを起動します。
# /global/apache/bin/httpd ¥ -f /global/websites/dev/conf/httpd.conf # /global/apache/bin/httpd ¥ -f /global/websites/sqa/conf/httpd.conf |
DocumentRoot 命令。文書ルートディレクトリの場所を指定します。HTML 文書がインストールされる、クラスタファイルシステム上の場所を示します。
ScriptAlias 命令。cgi-bin ディレクトリのクラスタファイルシステム上の場所を含みます。cgi-bin ファイルがインストールされるクラスタファイルシステム上の場所を示します。
Web サーバーに対する URL マッピングの設定では、いくつかの規則に従う必要があります。たとえば、CGI ディレクトリを設定する場合、可用性を維持するには、マップしたディレクトリをクラスタファイルシステムに配置する必要があります。たとえば、CGI ディレクトリを /global/disk-device-group/ServerRoot/cgi-bin にマップします。ここで、disk-device-group は、Apache ソフトウェアを含むディスクデバイスグループを示します。CGI プログラムが、RDBMS などのバックエンドサーバーにアクセスするような状況では、バックエンドサーバーも Sun Cluster によって制御されていることを確認してください。そのサーバーが、Sun Cluster がサポートする RDBMS の場合は、高可用性 RDBMS パッケージを使用してください。サポートしていない場合は、API を使用してサーバーを Sun Cluster の制御下に配置できます。詳細は、『Sun Cluster 3.0 データサービス開発ガイド』を参照してください。
ロックファイルを使用している場合は、httpd.conf ファイルの LockFile 命令の値をローカルファイルに設定してください。
PidFile 命令を使用してローカルファイルを指定します。次に例を示します。
PidFile /usr/local/apache/log/httpd.pid |
サーバーポートまたは複数のポートからアクセスされる Port 命令設定。デフォルト値は、各ノードの httpd.conf ファイルで設定されます。Port_list リソースプロパティは、各 httpd.conf ファイルに指定されているすべてのポートを含む必要があります。
Port_list は、Network_resources_used で定義されているネットワークリソースの、ポートと IP アドレスのすべての組み合わせを Web サーバーが提供することを想定しています。次に例を示します。
Port_list="80/tcp,443/tcp,8080/tcp" |
ホスト |
ポート | プロトコル |
host-1 |
80 |
tcp |
host-1 |
443 |
tcp |
host-2 |
8080 |
tcp |
host-2 |
80 |
tcp |
host-2 |
443 |
tcp |
host-2 |
8080 |
tcp |
ただし、host-1 がポート 80 と 443 のみにサービスを提供し、host-2 はポート 80 と 8080 のみにサービスを提供する場合は、Apache の Port_list は次のように構成できます。
Port_list=host-1:80/tcp,host-1:443/tcp,host-2:80/tcp,host-2:8080/tcp |
また、次の規則が適用されます。
host-1 および host-2 のホスト名と IP アドレス (ネットワークリソース名ではない) を指定する必要があります。
Apache が、Network_resources_used 内の各 host-n ごとに host-n/port を提供する場合、host-1/port-1、host-2/port-2、のような組み合わせの代わりに短い形式を使用できます。次に例を示します。
例 1 ::
Port_list="80/tcp,host-1:443/tcp,host-2:8080/tcp" Network_resources_used=host-1,host-2 |
ホスト |
ポート | プリトコル |
host-1 |
80 |
tcp |
host-1 |
443 |
tcp |
host-2 |
80 |
tcp |
host-2 |
8080 |
tcp |
例 2 ::
Port_list="host-1:80/tcp,host-2:80/tcp" Network_resources_used=net-1,net-2 #net-1 contains host-1. #net-2 contains host-2 and host-3. |
ホスト |
ポート | プロトコル |
host-1 |
80 |
tcp |
host-2 |
80 |
tcp |
Port_list で指定されたすべてのホスト名 (IP アドレス) は、他のスケーラブルリソースの Network_resources_used プロパティで指定されているネットワークリソースに属してはなりません。スケーラブルサービスが、別のスケーラブルリソースによって使用されている IP アドレスを検出すると、Apache リソースの作成に失敗します。
Sun Cluster HA for Apache データサービスと別の HTTP サーバーを実行している場合は、HTTP サーバーがそれぞれ異なるポートで待機するように構成してください。異なるポートで待機するように構成しないと、2 つのサーバーの間でポートの衝突が発生します。
Sun Cluster HA for Apache を登録して構成するには、次の情報を検討し指定する必要があります。
Sun Cluster HA for Apache をフェイルオーバーサービスとして使用するのか、スケーラブルサービスとして使用するのかを決定する。
設定する障害モニターリソースプロパティを決定する (たとえば、Thorough_probe_interval または Probe_timeout など)。ほとんどの場合はデフォルト値で十分です。これらのプロパティについては、「Sun Cluster HA for Apache の拡張プロパティの構成」を参照してください。
Sun Cluster HA for Apache のリソースタイプの名前を指定する。この名前は、SUNW.apache です。
データサービスをマスターするクラスタノードの名前を指定する。
データサービスへのアクセスにクライアントが使用する論理ホスト名 (フェイルオーバーサービスの場合) または共有アドレス (スケーラブルサービスの場合) を指定する。通常、この IP アドレスは、クラスタのインストール時に設定されます。ネットワークアドレスの設定については、『Sun Cluster 3.0 ソフトウェアのインストール』のネットワークアドレスの設定に関する説明を参照してください。
アプリケーションバイナリへのパスを指定する。バイナリは、ローカルディスクまたはクラスタファイルシステムにインストールできます。各場所にインストールした場合の長所と短所については、「アプリケーションバイナリの格納先の決定」を参照してください。
conf ディレクトリのパスを指定する。
Load_balancing_policy が LB_STICKY または LB_STICKY_WILD に設定されているオンラインスケーラブルサービスの場合、Load_balancing_weights を変更するには注意が必要です。サービスがオンラインのときにこれらのプロパティを変更すると、既存のクライアントとの関連がリセットされます。したがって、そのクライアントが以前にクラスタ内の別のノードからサービスを受けていても、異なるノードがそのクライアントの要求を処理します。
同様に、サービスの新しいインスタンスがクラスタで起動された場合は、既存のクライアントとの関連がリセットされることがあります。
スケーラブルプロキシが、スケーラブル Web リソースに LB_STICKY ポリシーを提供する場合は、そのプロキシにも LB_STICKY ポリシーを設定してください。
Confdir_list および Port_list プロパティのエントリを決定する。フェイルオーバーサービスの場合、Confdir_list に登録できるエントリは、1 つだけです。Port_list には複数のエントリを登録できます。スケーラブルサービスの場合は、この 2 つのプロパティに、それぞれ複数のエントリを登録できます。詳細は、「Sun Cluster HA for Apache を登録して構成する」を参照してください。