web-dev-qa-db-ja.com

単一のWebサイトを複数の物理サーバーに展開する方法は?

編集:私がWeb開発に不慣れだったときに3〜4年前にこの質問をしましたが、質問は今日私には少しばかげています。他のホスティングプロバイダーに依存せずに独自のサーバー設定を作成したいと思いました。この質問を削除したかったのですが、いくつかのいい答えがあるので、そのままにしておきます。

Webサイトを複数の物理サーバーに展開したい。

サーバーが次のジョブを実行できるように、すべての物理サーバーにファイルと設定(およびユーザー入力)を保存する方法はありますか?

  1. サーバーはネットワークとして使用され、プロセスを高速化してエンドユーザーに堅牢なものを提供します。
  2. すべてのサーバーのハードドライバーに保存されるデータ、および
  3. すべてのサーバーは異なるプロバイダーからのインターネット接続を持っているので、たとえば
    1. インターネットプロバイダーのいずれかがダウンした場合、または
    2. ハードウェアまたは電源障害が発生した

webサイトは引き続き動作し、中断やデータの損失はありません。

このトピックに関するオンラインコースや包括的なチュートリアルについて知っている人はいますか?

5
Bangash

正しい思考。

すべてのサーバーは異なるプロバイダーからのインターネット接続を持っています。インターネットプロバイダーのいずれかがダウンした場合、またはb。ハードウェアまたは電源の障害が発生しても、Webサイトは中断することなく、またデータの損失もなく実行されます。

そのため、複数のホスティングサービスに依存している場合、Webサイトが大きくなると維持するのが難しくなります。

あなたの目的のために、コンテンツ配信ネットワーク(CDN)ベースの企業からホスティングサービスを利用する必要があります。

コンテンツ配信ネットワーク(CDN)は、インターネットの複数のデータセンターに配置されたサーバーの大規模な分散システムです。 CDNの目標は、高可用性と高性能でコンテンツをエンドユーザーに提供することです。 CDNは、Webオブジェクト(テキスト、グラフィック、URL、スクリプト)、ダウンロード可能なオブジェクト(メディアファイル、ソフトウェア、ドキュメント)、アプリケーション(eコマース、ポータル)、ライブストリーミングメディア、ストリーミングメディアとソーシャルネットワークを要求します。 -ウィキペディアから

以下のリソースが役立つ場合があります

3

パフォーマンスの向上を求めている場合、高可用性またはフォールトトレランス。あなたは後者だけを探していると思います。

あなたができることは2つ(またはそれ以上)のサーバーを持っていることです。 1つはアクティブ、もう1つはフォールバック用です。たとえば、メインサーバーを実行し、必要なすべてのことを実行できますが、otherサーバーはそれと同期し続け(おそらくNFSまたはSSHを介して)、CURLでテストして、すべてが生きていることを確認します数分(または秒)。

メインサーバーが応答していないことを検出すると、メインサーバーが自身のHDでWebサーバーソフトウェアを起動し、これまでに同期されたすべてのデータを、アクティブサーバーとして事実上宣言します。

以前ダウンしていたメインサーバーが再びアップした場合、最初に行うのは、もう一方のサーバーが現在アクティブサーバーである(または1つになっている)かどうかを確認することです。もしそうなら、それはそれ自身を二次的なものとして効果的に宣言します。それ以外の場合は、単に独自のWebサーバーを再起動します。

1
Yam Marcovic

CDNは、Webサイトがキャッシュに対応している場合(何度も読み取りを繰り返す場合)に、必要な処理を実行します。

ただし、そうでない場合は、この複数のインターネット接続->ファイアウォール->ルーター->ロードバランサー->複数のWebサーバー->共有SANのように設定します。これにより、すべてのWebサーバーが同じ場所に保存されます。サーバーを広い範囲に分散させたい場合は、サーバー間で何らかの待ち時間が発生するため、完全には一致しないことに注意する必要があります。

1
Inverted Llama