Apache Web Server は、httpd デーモンの複数インスタンスの同時実行をサポートしています。LifeKeeper の各 Apache Web Server 階層は、固有の「サーバルート」ディレクトリを持つ個別の Apache インスタンスに対応します。各インスタンスは、「仮想ホスト」を使用するように設定されているかどうかにより、1 つ以上の Web サイトをサポートできます。

主に、サーバルートディレクトリは 1 つの Apache Web Server インスタンスを定義します。これは、Web インスタンスの設定方法を指定する conf/httpd.conf 設定ファイルがこのディレクトリに入れられるからです。このファイル内にある Apache 設定ディレクティブにより、このインスタンスのログファイル、Web ドキュメント、その他の設定ファイルなどの場所、および使用する IP/ ドメイン名のアドレスが指定されます。

LifeKeeper ファイルシステム (共有ストレージを使用) を使用するかどうかに基づいて、Apache Web Server の設定を分類すると便利です。1 つの共有ファイルシステムを、サーバルートディレクトリ (設定ファイル conf/httpd.conf とともに使用) やドキュメントルートディレクトリ (さらにオプションで httpd 実行可能ファイル自体) に使用できます。特定の Apache インスタンスについて、ローカル設定と共有設定のいずれを使用するかは、2 つの主な要因によって決まります。その 1 つは、設定ファイルや Web サイトのドキュメントの複数の同一コピーを個別に管理することの困難さであり、もう 1 つは、2 台以上のサーバで共有 (またはミラー化) できるストレージの可用性とアクセス容易性です。ただし、1 台のサーバ上に、ローカルの Apache インスタンスと共有の Apache インスタンスの両方を設定できることに注意してください。

以降のセクションでは、LifeKeeper 環境でのローカル共有 の Apache Web Server 設定の例を示し、それぞれの主な特徴の概要を説明します。

ローカル設定

一般的なローカル設定では、複数のサーバ間で共有されるものはありません。Apache Web Server の設定ファイル、Web ドキュメント、DSO モジュール (およびその設定ファイル)、および httpd 実行可能ファイルのそれぞれについて、同一コピーが各サーバの正確に同じ位置に存在します。各サーバに Apache コンポーネントの同一コピーを維持するのは、Apache 管理者の責任です。

設定ファイルにより、各 Web サイトに IP アドレス、または特定の IP アドレスをマップするドメインアドレスが割り当てられます。それぞれのアドレスについて LifeKeeper の IP アドレスが作成され、Apache リソース階層に追加されます。あるサーバから別のサーバに Apache 階層がスイッチオーバすると、元のサーバではこの特定の httpd インスタンスが停止し、IP アドレスが非アクティブになります。次に、スイッチオーバ先のサーバで、IP アドレスがアクティブになり、インスタンスが開始されます。その後、TCP/IP 経由でクライアントがスイッチオーバ先のサーバ上にある同一の Web サイトに自動的に接続されます。

図 1: ローカル設定

 

設定に関する注記:

  • 図 1 は、共有ファイルシステムに何も配置しないローカル設定の例です。
  • 各サーバの同じ位置 (通常は /usr/bin/httpd) に、同一バージョンの Apache Web Server 実行可能ファイルがあります。
  • 各サーバは同一のサーバルートディレクトリを持ち、そこには各インスタンスの設定ファイルの同一コピーが配置されます。
  • 各サーバは同一のドキュメントルートディレクトリを持ち、そこには各インスタンスの Web ドキュメントの同一コピーが配置されます。
  • DSO モジュールを使用する場合は、各サーバの同じ場所にその同一コピーがあります。

Server 1 での Apache Web Server リソース階層の作成:

サーバ: Server1
Web Server バイナリの位置: /usr/sbin/httpd
Web Server のルートディレクトリ: /home/www/examples/instance1/
ルートタグ apache-www.examples.instance1

 

Apache Web Server リソース階層の Server 2 への拡張:

テンプレートサーバ: Server1
拡張するタグ: apache-www.examples.instance1
ターゲットサーバ Server2
ターゲットの優先順位: 10

 
Apache リソース階層を 1 台以上の追加サーバに拡張するときには、ローカル設定と共有設定のいずれの場合でも、すべてのサーバで同一の Web Server バイナリの位置、および同一の Web Server のルートディレクトリを使用する必要があることに注意してください。詳細については、前述の説明、およびApache Web Server の設定に関する考慮事項 のセクションを参照してください。また、階層の拡張時に、Apache リソース階層の一部を構成する依存リソースがすべて、LifeKeeper により拡張されます。

共有設定

一般的な共有設定では、サーバルートディレクトリとドキュメントルートディレクトリはすべて、同一の共有ファイルシステムに存在します。同一の設定ファイルと Web ドキュメントが複数のサーバで共有されるので、各サーバに同一コピーを維持する必要はありません。DSO モジュールを使用する場合は、必要となる設定ファイルやリソースとともに、同じ共有ファイルシステムに配置できます。

Web ドキュメントのみを共有ファイルシステムに配置できることに注意してください。この方法では、サーバルートディレクトリがローカルなので一般的なローカル設定に似ていますが、階層には共有ファイルも含まれます。 

この Apache リソース階層で Apache 実行可能ファイルの特定バージョンまたは個別のコピーを使用する場合は、この実行可能ファイルも共有ファイルシステムに配置できます。この実行可能ファイルは、このインスタンスにのみ使用可能になります。この場合は、Web Server バイナリの位置の入力を要求されたときに、共有ファイルシステム上にある httpd 実行可能ファイルのフルパスを入力します。

使用できる共有ファイルシステムは 1 つのみであることに注意してください。これにより、確実に、共有ストレージにあるすべての必須コンポーネントが同時に利用可能になります。共有ファイルシステム上の Web Server バイナリの位置を使用する場合は、同じ共有ファイルシステム上にある Web Server のルートディレクトリも選択する必要があります。また、このサーバルート用に設定した DocumentRoot ディレクトリがすべて、同じ共有ファイルシステム上に存在する必要があります。同様に、共有ファイルシステム上の Web Server のルートディレクトリを選択するときには、DocumentRoot ディレクトリがすべて、同じ共有ファイルシステム上に存在する必要があります。バイナリとサーバルートが共有ファイルシステムに存在しないが、いずれかの DocumentRoot ディレクトリが共有される場合、すべての DocumentRoot ディレクトリを同じファイルシステム上で共有する必要があります。

これらの規則は、以下のように要約できます。

  • Apache 実行可能ファイルを共有する場合は、サーバルートディレクトリを共有する必要があります。
  • サーバルートディレクトリを共有する場合は、すべての DocumentRoot ディレクトリを共有する必要があります。
  • DocumentRoot ディレクトリを 1 つでも共有する場合は、すべての DocumentRoot ディレクトリを共有する必要があります。
  • 個々の Apache リソース階層について、共有ファイルシステムを 1 つのみ使用できます。

 

図 2:共有設定

 

設定に関する注記:

  • 図 2 は、設定ファイルと Web ドキュメントを共有する共有設定の例です。
  • Web ドキュメントのみを共有ファイルシステムに配置できます。この方法は一般的なローカル設定に似ていますが、階層には共有ファイルシステムも含まれる点が異なります。
  • DSO モジュールを使用する場合は、必要な設定ファイルやリソースとともに、共有ファイルシステムに配置できます。
     

Server 1 での Apache Web Server リソース階層の作成:

サーバ: Server1
Web Server バイナリの位置:

/usr/sbin/httpd

または

/shared/example/instance2/bin/httpd

Web Server のルートディレクトリ: /shared/example/instance2
ルートタグ apache-shared.example.instance2

Apache Web Server リソース階層の Server 2 への拡張:

テンプレートサーバ: Server1
拡張するタグ: apache-shared.example.instance2
ターゲットサーバ Server2
ターゲットの優先順位: 10

フィードバック

フィードバックありがとうございました

このトピックへフィードバック

送信