Apache/nginx がアーカイブ (zip、tgz、tbz など) から静的ファイルを提供するためのモジュールはありますか?指定された場所にファイルがない場合、指定されたアーカイブにそのファイルが要求されますか?
5 に答える
.tgz と .tbz の場合、ほとんどのパフォーマンスの損失 (特に大規模なアーカイブの場合) は、ディスクから読み取る必要があり、要求したファイルまでのすべてのデータを圧縮解除する必要があることに起因します。アーカイブ内の最後のファイルを要求すると、CGI スクリプトであれ Web サーバーであれ、ファイルを取得するためだけに、すべてのアーカイブ データの読み取り、圧縮解除、および破棄に時間を費やす必要があります。
Zip 形式では、ランダム アクセスが可能です。CGI スクリプトが非常に単純で (sh スクリプトでもかまいません)、基本的に正しい引数を指定して "unzip" を呼び出すだけの場合、サーバー モジュールにそれを実行させることで得られる高速化の量はかなり少なくなります。
そうは言っても、これを行うためのモジュールが存在しないとしたら、それはちょっとクレイジーです (しかし、いいえ、私はそれを見つけることができませんでした)。
別の可能性は、重複排除を伴うファイルのタイプと配布に応じて、圧縮ファイルシステムを使用することです。
プロ:
-.zipファイルとほぼ同じ効果があります(ストレージに関して)
-Webサーバー部分の変更は必要ありません
短所:
-zipDIR用の新しいFSの可能性があります
-使用されているOS(ZFSなど)では存在しない可能性があります
達成しようとしていることを明確にすると、別の方法があるかもしれません。
特に通常のファイルが見つからない場合のフォールバックとして、そうではないと思います。そうは言っても、それを行う CGI スクリプトはかなり単純です。ただし、パフォーマンスの低下は、負荷がかかっているときに顕著になる可能性があります。