7

現在、アプリケーションサーバーとデータベースサーバーの2台のサーバーを使用しているWebサイトがありますが、アプリケーションサーバーの負荷が増大しているため、2台目のアプリケーションサーバーを追加します。

私が抱えている問題は、Webサイトでユーザーがサーバーにファイルをアップロードしていることです。両方のサーバーにアップロードされたファイルを取得するにはどうすればよいですか?

私たちのアプリケーションはすでにデータベースを集中的に使用しているため、画像をデータベースに直接保存したくありません。

サーバーを相互に同期する方法はありますか、それとも他にできることはありますか?

どんな助けでもいただければ幸いです。

ありがとう

編集:私はこの質問をもっと理解するのを助けた人々のために次のリンクを追加しています:

複数のサーバー上のファイルを同期し、アップロードされたファイルを複数のサーバー間で同期 し 続ける-LAMP

この投稿を読んでいるすべての人にとって、NFSは2よりも優れているようです。

NFSはファイルの同期を維持しますが、ftpを使用してすべてのサーバーにファイルをアップロードすることもできますが、NFSはその方法のように見えます。

4

6 に答える 6

5

これはserverfaultの質問です。
とにかく、あなたは間違いなく「クラウド」に入ることを検討すべきだと思います。あるサーバーから別のサーバーへのアップロードの同期は、単純に信頼性がありません。どのような種類のエラーが発生するのか、なぜ発生するのかがわかりません。また、同期プロセスは両方のサーバーをロードします。私にとって、適切な解決策はクラウドで進んでいます。

同期方法を選択した場合、いくつかの解決策があります。

  1. rsyncサーバー間で必要なファイルを同期するために使用します。
  2. crontabX分/時間/日ごとにファイルを同期するために使用します。
  3. 何らかのイベント(ユーザーログインなど)時にファイルをコピーします
于 2012-07-08T21:03:20.983 に答える
4

私はサーバーの障害からこの答えを得ました:

このような状況での最も適切な行動方針は、ファイル共有を独自の別個のサービスに分割することです。ファイルを「どこにでも(ほぼ)一度に」配置できるネットワークがある場合は、ファイルを複製しないでください。これは、NFS/CIFSまたはiSCSIなどの適切なストレージプロトコルを介して実行できます。適切なディレクトリにローカルストレージとしてマウントします。ネットワークのパフォーマンスとストレージのニーズによっては、ページの読み込み時間が検出できないミリ秒になる可能性があります。

したがって、NFSを使用してサーバーファイルを共有すると、または

@kgbで述べられているように、アップロードされたすべてのファイルを保持する単一のサーバーを指定し、そこから他のサーバーをプルさせることができます(ファイルをバックアップするためにcronなどを実行していることを確認してください)

于 2012-07-08T21:03:14.753 に答える
2

ほとんどのサイトは、ユーザーのアップロードにAmazon S3などのサードパーティ指定のファイルサーバーを使用することで、この問題を解決しています。

于 2012-07-08T18:59:45.123 に答える
2

もう1つの答えは、BTSyncと呼ばれるソフトウェアを使用することです。インストールと使用が非常に簡単で、必要な数のサーバー間でファイルの同期を簡単に維持できます。インストールに必要なターミナルコマンドは3つだけで、非常に効率的です。

こちらをご覧ください


そしてここ

于 2013-10-15T12:39:57.937 に答える
1

ストレージにdbサーバーを使用できます...dbにはありません。つまり、そこでWebサーバーも実行しています。CPUの負荷はそれほど増加しませんが、より良いチャネルが必要になります。

于 2012-07-08T19:30:11.997 に答える
1

あなたはrsyncでそれを行うことができます..人々はnfsを使用することを提案しました..しかしその方法であなたは単一障害点を作成します...nfsサーバーがダウンした場合..両方のサーバーがねじ込まれています...私が間違っている場合は私を修正してください

于 2014-01-15T12:37:50.297 に答える