Sun Cluster HA for Apache をインストールする前に、Apache 構成ファイル httpd.conf の次の情報を更新します。
httpd.conf ファイルの場所は、インストールによって異なります。システム管理者は、通常、httpd.conf ファイルをクラスタファイルシステム上にインストールします。デフォルトのインストールでは、/usr/local/apache/conf ディレクトリに httpd.conf ファイルが配置されます。Solaris に付属している Apache パッケージをインストールする場合、このファイルは /etc/apache ディレクトリに配置されます。
ホスト名を含む ServerName の指定。Sun Cluster HA for Apache の高可用性を実現するには、サーバーのアクセスに使用されるネットワークリソース (論理ホスト名または共有アドレス) の名前を、この指定に設定します。論理ホスト名または共有アドレスの設定は、クラスタをインストールした時点で行われていなければなりません。ネットワークリソースの詳細は、『Sun Cluster 3.1 の概念』を参照してください。
論理ホストまたは共有アドレスを設定する必要がある BindAddress の指定。INADDR_ANY にバインドするように Apache を構成できます。しかし、各リソースは個別のネットワークリソースと ポート番号のペアにバインドする必要があります。たとえば、複数のリソースを実行する場合、各リソースのポート番号が異なるのであれば INADDR_ANY を使用できます。
ServerType 命令。この命令はデフォルトの standalone に設定する必要があります。
複数の Apache インスタンス。複数の Apache インスタンスが存在する場合は、異なるリソースを使用して各インスタンスを管理する必要があります。また、個々のリソースには固有の Bin_dir を設定する必要があります。特定の Apache インスタンスを起動するこの Bin_dir プロパティの下には、apachect1 スクリプトが存在しなければなりません。
httpd バイナリは、異なる Apache リソースで共有できます。つまり、さまざまなリソースの apachect1 スクリプトが同じ httpd バイナリのパスを指定しても支障ありません。しかし、特定の Apache リソースに異なる構成ファイルを使用するためには各 apachect1 スクリプトを変更する必要があります。このためには、httpd コマンドの -f オプションを使用して特定の httpd.conf ファイルを指定します。
DocumentRoot 命令は、文書ルートディレクトリの場所を指定します – この命令は、HTML 文書がインストールされる、クラスタファイルシステム上の場所を示します。
ScriptAlias 指定は、cgi-bin ディレクトリのクラスタファイルシステム上の場所を含みます – この指定は、cgi-bin ファイルがインストールされるクラスタファイルシステム上の場所を示します。
Web サーバーに対する URL マッピングの設定では、いくつかの規則に従う必要があります。たとえば、CGI ディレクトリを設定する場合、可用性を維持するには、マップしたディレクトリをクラスタファイルシステムに配置する必要があります。たとえば、CGI ディレクトリを /global/diskgroup/ServerRoot/cgi-bin にマップします。ここで、diskgroup は、Apache ソフトウェアを含むディスクデバイスグループを示します。CGI プログラムが、RDBMS などのバックエンドサーバーにアクセスするような状況では、バックエンドサーバーも Sun Cluster ソフトウェアによって制御されていることを確認してください。そのサーバーが、Sun Cluster ソフトウェアがサポートする RDBMS の場合は、高可用性 RDBMS パッケージを使用してください。あるいは、『Sun Cluster データサービス開発ガイド (Solaris OS 版)』で説明されている API を使用して、サーバーを Sun Cluster の制御下に置きます。
ロックファイル – ロックファイルを使用している場合は、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” |
たとえば、Port_list 構成は、次の IP ポートの組み合わせを検証します。
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node1 |
8080 |
tcp |
node2 |
80 |
tcp |
node2 |
443 |
tcp |
node2 |
8080 |
tcp |
ただし、node1 がポート 80 と 443 のみにサービスを提供し、node2 はポート 80 と 8080 のみにサービスを提供する場合は、Apache の Port_list プロパティは次のように構成できます。
Port_list=node1/80/tcp,node1/443/tcp,node2/80/tcp,node2/8080/tcp |
次の規則を考慮してください。
node-1 および node-2 のホスト名と IP アドレス (ネットワークリソース名ではない) を指定する必要があります。
Apache が Network_resources_used プロパティ 内の各 nodeN ごとに nodeN/port を提供する場合、node1/port1、node2/port2 のような組み合わせの代わりに短い形式を使用できます。次に例を示します。
▼▼例 1
Port_list=”80/tcp,node1/443/tcp,node2/8080/tcp” Network_resources_used=node1,node2 |
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node2 |
80 |
tcp |
node2 |
8080 |
tcp |
例 2
Port_list=”node1/80/tcp,node2/80/tcp” Network_resources_used=net-1,net-2 #net-1 contains node1. #net-2 contains node2 and node3. |
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node2 |
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 をフェイルオーバーデータサービスとスケーラブルデータサービスのどちらで使用するかを決定する。
Apache Webserver のセキュアバージョンと非セキュアバージョンのどちらをインストールするかを決定する。
設定する障害モニターリソースプロパティを決定する (たとえば、Thorough_probe_interval または Probe_timeout プロパティなど)。ほとんどの場合はデフォルト値で十分です。これらのプロパティについては、「Sun Cluster HA for Apache 拡張プロパティの構成」を参照してください。
Sun Cluster HA for Apache のリソースタイプの名前を指定する。この名前は、SUNW.apache です。
データサービスをマスターするクラスタノードの名前を指定する。
データサービスへのアクセスにクライアントが使用する論理ホスト名 (フェイルオーバーサービスの場合) または共有アドレス (スケーラブルサービスの場合) を指定する。通常、この IP アドレスは、クラスタのインストール時に設定されます。ネットワークリソースの詳細は、『Sun Cluster 3.1 の概念』を参照してください。
アプリケーションバイナリへのパスを指定する。バイナリは、ローカルディスクまたはクラスタファイルシステムにインストールできます。各インストール先の長所と短所については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「Sun Cluster データサービスの構成ガイドライン」を参照してください。
該当する httpd.conf 構成ファイルを使用するには各 apachect1 コピーを変更する。
Load_balancing_policy プロパティが LB_STICKY または LB_STICKY_WILD に設定されているオンラインスケーラブルサービスの場合、Load_balancing_weights プロパティを変更するには注意が必要です。サービスがオンラインのときにこれらのプロパティを変更すると、既存のクライアントとの関連がリセットされます。したがって、そのクライアントが以前にクラスタメンバーからサービスを受けていても、異なるノードがそのクライアントの要求を処理します。
同様に、サービスの新しいインスタンスがクラスタで起動された場合は、クライアントとの既存の親和性がリセットされることがあります。
Port_list プロパティのエントリを決定する。Port_list プロパティには複数のエントリを指定できます。詳細については、「Sun Cluster HA for Apache を登録して構成する」を参照してください。
Monitor_Uri_List 拡張プロパティを利用するかどうかを決定する。この拡張プロパティを使用して、任意の URI リストを監視できます。URI の任意の監視は、Sun Cluster HA for Apache エージェントの検証で、Sun Cluster HA for Apache サーバー上に配備されたアプリケーション (URI) をすべて監視する必要がある場合に便利です。Monitor_Uri_List 拡張プロパティの使用は、Sun Cluster HA for Apache のセキュアインスタンスではサポートされていません。このプロパティを使用するには、Sun Cluster HA for Apache のリリース 3.1 10/03 をインストールする必要があります。Sun Cluster HA for Apache を以前のバージョンからアップグレードする場合、新しいプロパティを使用するためには、リソースタイプのアップグレード手順を実行する必要があります。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースタイプの更新」を参照してください。任意指定の拡張プロパティの設定や、Monitor_Uri_List の使用例については、「Sun Cluster HA for Apache 拡張プロパティの構成」を参照してください。