9

Apache/nginx がアーカイブ (zip、tgz、tbz など) から静的ファイルを提供するためのモジュールはありますか?指定された場所にファイルがない場合、指定されたアーカイブにそのファイルが要求されますか?

4

5 に答える 5

2

.tgz と .tbz の場合、ほとんどのパフォーマンスの損失 (特に大規模なアーカイブの場合) は、ディスクから読み取る必要があり、要求したファイルまでのすべてのデータを圧縮解除する必要があることに起因します。アーカイブ内の最後のファイルを要求すると、CGI スクリプトであれ Web サーバーであれ、ファイルを取得するためだけに、すべてのアーカイブ データの読み取り、圧縮解除、および破棄に時間を費やす必要があります。

Zip 形式では、ランダム アクセスが可能です。CGI スクリプトが非常に単純で (sh スクリプトでもかまいません)、基本的に正しい引数を指定して "unzip" を呼び出すだけの場合、サーバー モジュールにそれを実行させることで得られる高速化の量はかなり少なくなります。

そうは言っても、これを行うためのモジュールが存在しないとしたら、それはちょっとクレイジーです (しかし、いいえ、私はそれを見つけることができませんでした)。

于 2011-03-09T07:19:59.770 に答える
1

別の可能性は、重複排除を伴うファイルのタイプと配布に応じて、圧縮ファイルシステムを使用することです。

プロ:

-.zipファイルとほぼ同じ効果があります(ストレージに関して)

-Webサーバー部分の変更は必要ありません

短所:

-zipDIR用の新しいFSの可能性があります

-使用されているOS(ZFSなど)では存在しない可能性があります

達成しようとしていることを明確にすると、別の方法があるかもしれません。

于 2011-03-10T11:00:07.623 に答える
1

SquashFSを見てください。これは圧縮ファイルシステムです。

主に LiveCD/DVD/USB ISO で使用されますが、状況に完全に適用できる tar.gz アーカイブと考えることができます。

ここにハウツーがあります。

PS: 他の回答とは対照的に、SquashFS を使用するために特定の OS は必要ありませんが、たまたま Solaris または FreeBSD を実行している場合は、ZFS圧縮を使用してください。

于 2011-03-10T16:33:23.847 に答える
0

特に通常のファイルが見つからない場合のフォールバックとして、そうではないと思います。そうは言っても、それを行う CGI スクリプトはかなり単純です。ただし、パフォーマンスの低下は、負荷がかかっているときに顕著になる可能性があります。

于 2011-03-03T20:28:19.900 に答える