WAN リンク ディスク ストアからの Apache キャッシュ

WAN リンク ディスク ストアからの Apache キャッシュ

問題: ウェブサイトから大量のデジタル写真をホストしたいのですが、ホストのディスク容量が足りません。

背景: 私はウェブサイトをホストする VPS を持っています。マシンの帯域幅は膨大ですが、ディスク容量はそれほど多くありません (50 GB 程度)。また、低速のインターネット回線上には、ディスク容量がたっぷりあるサーバーもあります。

私の解決策: 低速リンクのマシンにイメージを保存し、それを Web ホストにマウントし (sshfs などを使用して)、すべてのイメージのシンボリック リンクを作成し、それらのシンボリック リンクを Apache から提供することは可能かと考えていました。次に、Apache ログをスキャンして最も人気のある X 個のファイルを探し、それらのファイルを Web サーバーのローカルにコピーする (したがって高速になる) スクリプトを作成します。

しばらくして、これは深夜のアイデアのように思えたので、寝て考えることにしました。今朝はまだ少し怪しい気がしますが、ディスク->ディスク キャッシュで動作する Apache キャッシュ モジュールが何かあるはずですよね? (私が知っているものはすべてディスク->メモリで、重要なファイルを遅い WAN リンクまたは遅いローカル ディスクからローカル ディスクに移動するのではなく、RAM に移動します)。

TL;DR: これは実際には愚かなアイデアでしょうか?

答え1

低速リンク マシンをインターネットに公開できる場合は、そのマシン上で Web サーバーを実行することもできます。

これは、sshfs のオーバーヘッドを削除することを意味します。

Apache の mod_rewrite モジュールを mod_proxy と一緒に使用して、すべての画像リクエストをサーバーに強制的に送信することができます。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /(.*)\.(jpg|gif|png) http://slow.server.com/$1.$2 [P] 

RewriteCond ルールは、要求されたファイルがサーバー上に存在しない場合にのみ書き換えを行うように指定します。次に、RewriteRule は、要求が画像の場合は、低速サーバーから画像を取得するように指定します。

それから、人気のある画像を追跡してサーバーにアップロードするだけです。 人気のある画像が存在する場合は、それが使用されます。

答え2

あなたが探しているのは、使用状況に応じてキャッシュ内に何を保持するかを決定する、ある種の Web プロキシだと思います。

したがって、おそらくmod_proxyまたはmod_cache( もありますmod_disk_cache) をここで活用できます。

一般的には、「キャッシュ」スクリプトを検索するよりも、「プロキシ」スクリプトを検索する方が、探しているものがいくらか多く見つかるのではないかと思います。

関連情報