GNU/Linux >> Linux の 問題 >  >> Linux

複数の Web サーバー間でアセットを共有する方法は?

解決策 1:

必要に応じて、これを行う方法は複数あります。

  • ウェブサーバー上の fx NFS でマウントされた中央ファイル サーバーを使用する
  • 上記と同じですが、冗長なので、一方がダウンすると、もう一方が引き継ぎます
  • ある種の同期ツール (rsync など) を使用して、ファイルをウェブサーバー上でローカルにホストします。次に、特定の間隔でサーバー間でファイルを同期するように cron ジョブをセットアップします。
  • Amazon S3、Akamai などの CDN を使用する

多くの新しいファイルが来る場合は、最初の 2 つが最適です。 3 番目は、まだ同期されていない静的コンテンツでユーザーが 404 を取得するため、頻繁にファイルを追加または変更しない場合に理想的なソリューションです..

最後のオプションは多くの点で理想的かもしれませんが、4 つのオプションの中で最もコストがかかる場合もあります。これをサポートするには、Web サイトを書き直す必要もあります。

解決策 2:

Web サーバーの負荷を減らし、負荷分散を実行するもう 1 つの優れた方法は、squid (すなわち squid3) を使用することです。キャッシング付きのリバース プロキシとして設定します。そのように設定すると、画像などの静的コンテンツが HDD (デフォルト) または RAM (高速で最適) にキャッシュされます。特定のノードが過負荷になった場合、他の Squid サーバーへのラウンド ロビンも可能です。

解決策 3:

私が採用したこの課題に対する 1 つの解決策は、ファイルのメインの読み取り/書き込みコピーを共有 NFS ドライブに置き、各 Web サーバーに読み取り専用コピーを保持して、NFS ホストの障害がファイル アクセスを停止するようにすることです。それらを完全に失うのではなく、読み取り専用モードで。

  • ファイルは中央ホストに存在し、NFS マウントを介してウェブホストと共有されます
  • rsync 各ウェブホストの読み取り専用コピーを最新の状態に保つために、15 分間実行されます。
  • A check_link bash スクリプトは毎分実行され、NFS マウントがまだそこにあることを確認し、そうでない場合は読み取り専用コピーへのシンボリック リンクをスワップします。

このシステムを最初にセットアップしたときの詳細については、この記事を参照してください。

利点:

  • ファイル読み取りの可用性が高い
  • ファイル書き込みの競合状態なし
  • 新しいファイルは、すべてのウェブ ホストですぐに利用できます。

欠点:

  • 少し複雑です。
  • 読み取り専用コピーの数は、ウェブホストの数に比例します。2 つ以上のホストがある場合は、過剰になる可能性があります。
  • ファイル書き込みは高可用性ではありません。
  • 読み取り専用コピーに切り替える前に最大 1 分間のダウンタイムが発生する可能性があります。

Linux
  1. Linuxで複数のファイルを圧縮する方法

  2. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  3. ファイル内の複数の文字列を見つける方法は??

  1. SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

  2. Ubuntu と Mac OS X の間でファイルを共有する方法

  3. 2 つのサーバー間で大量のファイルをすばやくコピーする方法

  1. 複数のファイルを編集し、バッファを使用してVIM内のファイルを切り替える方法

  2. 複数のファイルの拡張子を変更するにはどうすればよいですか?

  3. Linuxで一度に複数のファイルの名前を変更する方法