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

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

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

送信