web-dev-qa-db-ja.com

ワニスで巨大なファイルをキャッシュします。それは実行可能ですか?

数百のファイルへのアクセスを提供するサーバーが1つあります。それらはすべて本当に大きいです(10GBを超えるものもあります)。これらのファイルは変更されず、読み取り専用ですが、WAN経由でファイルへのアクセスを提供する必要があります。

ユーザーの近くで実行されているリバースプロキシサーバーを使用して、アクセスを高速化したい。例えば:

  • ユーザーXがサーバーA上の何かにアクセスしたいと考えています。
  • ユーザーXがLAN上のリバースプロキシサーバーにアクセスすると、キャッシュミスが発生します。ファイルはこのプロキシサーバーにダウンロードされます。
  • 次回ユーザーXが同じファイルを必要とするとき、彼は私のメインサーバーでそれを取得する必要はありません。

この状況は些細なことですが、トラフィックはそれほど多くありません。私の問題は、ファイルサイズ自体に関連しています。 2GBを超えるファイルのキャッシュに問題があるSquidについて何か読んだ。ワニスは同じ種類の問題に直面していますか?

それについての考えをありがとう。

2
Thiago Moraes

技術的には可能ですが、達成したいことについては、rsyncを使用してバックエンドサーバーを定期的にミラーリングすることを検討します。

この理由の1つは、Varnishがキャッシュからオブジェクトを配信する方法です。オブジェクトがVarnishsキャッシュにない場合は、バックエンドからフェッチします。これが発生すると、ユーザーはクライアントへの転送が発生せずに待機する必要があります。

ファイルがVarnishキャッシュに保存されると、ユーザーへの転送を開始できます。

そもそもユーザーがサーバーにアクセスする方法によっては、これによりかなりの量の余分な待機が発生する可能性があります。

1
Kvisle

Squidは、2 GBを超えるオブジェクトをサポートするために./configure --with-large-filesを必要とします(Debian/Ubuntu squidパッケージではデフォルトで有効になっている必要があります)。

ほとんどのファイルがほとんどのクライアントによって頻繁にアクセスされる場合は、代わりにrsyncミラーを設置することを検討してください。

0