検索

ホームページ  >  に質問  >  本文

システム アーキテクチャ - 静的ファイルを処理するための nginx アーキテクチャに関する質問

前面には 2 つの nginx サーバー N1、N2 があり、高可用性のためにキープアライブを使用します
バックエンドは 4 つの Tomcat T1、T2、T3、および T4 のクラスターです (セッション共有の問題を解決するために memcached が使用されます)

コード内には js/css などの静的ファイルが含まれており、これらのファイルは扱いやすく、ソース コードはこれら 6 台のサーバー間で同期できます。

システムは pdf/doc などの大量のファイルをアップロードし、後でプレビューするために swf 形式に変換する必要があるため、T3 と T4 は特別な処理に使用されます。その他一般業務はT1、T2にお任せください

ここで問題が発生します。クライアントは pdf または swf ファイルにアクセスしたいと考えており、そのリクエストは nginx に送信されます。ローカルには js/css などの静的ファイルしか存在しないため、ここで傍受することはできません。 doc/pdf がないので、proxy_pass の場所を使用してそこにアクセスします。T3 と T4 ですが、T3 と T4 には Tomcat しかなく、静的ファイルの処理では明らかに効率的ではありません。何をするか?

私には 2 つのアイデアがあります:

  1. 共有ファイル システムを使用しますが、安定性を調査する必要があります
  2. バックエンドに Apache を使用する

どうやって解決したのかわかりませんが?

滿天的星座滿天的星座2738日前485

全員に返信(2)返信します

  • 習慣沉默

    習慣沉默2017-05-16 17:26:18

    この問題は深刻になりつつありますか?これには多くのシナリオがあり、参照できる既製のソリューションがあります

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:26:18

    最も簡単な方法は、doc/pdf リソースの新しいドメイン名またはサブドメイン名を指定し、nginx を構成し、新しいドメイン名に対するすべてのリクエストを t3 と t4 に転送することです。

    しかし、ここで質問があります。ユーザーがファイルを t3 にアップロードし、次回ファイルにアクセスしたときに nginx がリクエストを t4 に転送したらどうなるでしょうか?
    では、t3 と t4 の間に同期メカニズムはあるのでしょうか?
    この問題を解決するにはいくつかの方法があります:
    1. おっしゃる通り、sambaなどの共有ファイルシステムを利用し、t3とt4のファイルをここにアップロードします
    2. 2 台のマシン間でファイルを手動で同期する利点は、データがバックアップと同等であることですが、欠点については言及されていません
    3. 最初の問題も解決できるよう、Youpai のように cdn を使ってみてください
    4. 。 。 。

    返事
    0
  • キャンセル返事