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 パッケージのいずれか 1 つを使用します。サポートしていない場合は、API を使用してサーバーを Sun Cluster の制御下に配置できます。詳細は、『Sun Cluster 3.1 データサービス開発ガイド』を参照してください。
ロックファイル – ロックファイルを使用している場合は、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 |
ただし、node-1 がポート 80 と 443 のみにサービスを提供し、node-2 はポート 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 Web サーバー の、セキュアまたは非セキュアバージョンのどちらをインストールするかを決定します。
設定する障害モニターリソースプロパティを決定します (たとえば、Thorough_probe_interval または Probe_timeout プロパティなど)。ほとんどの場合はデフォルト値で十分です。これらのプロパティについては、Sun Cluster HA for Apache 拡張プロパティの構成を参照してください。
Sun Cluster HA for Apache のリソースタイプの名前を指定します。この名前は、SUNW.apache です。
データサービスをマスターするクラスタノードの名前を指定します。
データサービスへのアクセスにクライアントが使用する論理ホスト名 (フェイルオーバーサービスの場合) または共有アドレス (スケーラブルサービスの場合) を指定します。通常、この IP アドレスは、クラスタのインストール時に設定されます。ネットワークリソースの詳細は、『Sun Cluster 3.1 の概念』を参照してください。
アプリケーションバイナリへのパスを指定します。バイナリは、ローカルディスクまたはクラスタファイルシステムにインストールできます。各場所にインストールした場合の長所と短所については、アプリケーションバイナリの格納先の決定を参照してください。
該当する httpd.conf 構成ファイルを使用するには各 apachect1 コピーを変更します。
Load_balancing_policy プロパティが LB_STICKY または LB_STICKY_WILD に設定されているオンラインスケーラブルサービスの場合、Load_balancing_weights プロパティを変更するには注意が必要です。サービスがオンラインのときにこれらのプロパティを変更すると、既存のクライアントとの関連がリセットされます。したがって、そのクライアントが以前にクラスタメンバーからサービスを受けていても、異なるノードがそのクライアントの要求を処理します。
同様に、サービスの新しいインスタンスがクラスタで起動された場合は、既存のクライアントとの関連がリセットされることがあります。
スケーラブルプロキシが、スケーラブル Web リソースに LB_STICKY ポリシーを提供する場合は、そのプロキシにも LB_STICKY ポリシーを設定してください。
Port_list プロパティのエントリを決定します。Port_list プロパティには複数のエントリを指定できます。詳細については、Sun Cluster HA for Apache の登録と構成を参照してださい。