web-dev-qa-db-ja.com

mod_deflateとmod_gzip

CPU負荷のパフォーマンスと圧縮に関して、次のスクリプトの違いを誰かに教えてもらえますか?

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 


<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </filesMatch> 
</ifModule> 
30
Bachalo

これらのモジュールはどちらも同じことを行います。その場でgzip圧縮を追加します。

最近使用するのはmod_deflateです。これはよりモダンで推奨されるものであり、Apacheとともに配布されます。 mod_gzipは古いサードパーティの実装であり、これを使用する十分な理由はありません。

名前に騙されて、さまざまな圧縮方式を使用していると思わないでください。どちらもgzip(DEFLATEと呼ばれる圧縮アルゴリズムを使用する形式)を使用します。後者は、mod_gzipという名前が付けられたため、mod_deflateと呼ばれるだけです。どちらも、同等の設定で同じ圧縮レベルを実現します。

構成が異なるため(デフォルト設定が異なる場合があります)、使用している特定の設定のドキュメントを見つける必要があります。

11
thomasrutter

一般的に圧縮についてではなく、これら2つの違いについて尋ねていると思います。その場合、まだアクティブなプロジェクトzlibに依存するmod_deflateを使用することをお勧めします。ところで、この2つを比較する古い記事(6〜7歳)は、もはや関連性がありません。

9
eyalzo

ほとんどの圧縮アルゴリズムは、プレーンテキストファイルに適用すると、ファイルのコンテンツに応じて、サイズを70%以上削減できます。圧縮アルゴリズムを使用する場合、特にこれらの追加の圧縮パスを処理するために必要な追加のCPU時間を考慮する場合、標準と最大の圧縮レベルの差は小さいです。これは、Webコンテンツを動的に圧縮するときに非常に重要です。ほとんどのソフトウェアコンテンツ圧縮手法では、CPUサイクルを節約するために、圧縮レベル6(9レベルのうち)を使用します。レベル6とレベル9のファイルサイズの差は通常、非常に小さいため、余分な時間を費やす価値はありません。

Text /.* MIMEタイプとして識別されるファイルの場合、ファイルをネットワークに配置する前に圧縮を適用できます。これにより、転送されるバイト数が減り、パフォーマンスが向上します。テストでは、Microsoft OfficeおよびPostSciptファイルをGZIPでエンコードして、圧縮モジュールで転送できることもわかりました。

GZIPエンコードできないいくつかの重要なMIMEタイプは、外部JavaScriptファイル、PDFファイルおよび画像ファイルです。これらのファイルは実際にはテキストファイルであるため、JavaScriptファイルの問題は主にブラウザソフトウェアのバグが原因ですPDFおよび画像ファイルはすでに圧縮されており、再度圧縮しようとすると、ファイルが大きくなり、ブラウザーでのレンダリングの問題が発生する可能性があります。

圧縮ファイルをクライアントに送信する前に、サーバーがデータを受信するクライアントが圧縮形式を正しく理解してレンダリングすることを確認することが重要です。圧縮されたコンテンツを理解するブラウザーは、次のクライアント要求ヘッダーのバリエーションを送信します。

Accept-encoding: gzip

Accept-encoding: gzip, deflate 

現在の主要なブラウザには、送信するすべてのリクエストにこのメッセージのバリエーションが含まれています。サーバーがヘッダーを見て、圧縮されたコンテンツを提供することを選択した場合、サーバーはサーバー応答ヘッダーで応答する必要があります。

詳細については、次の記事を参照してください。 http://www.linuxjournal.com/article/6802

6
irl

Mod_deflateとmod_gzipを有効にしても基本的に同じことを実現します。どちらも、Webサイトの訪問者に送信される前にWebファイルを圧縮します。

ただし、この2つには違いがあります。 mod_deflateは、mod_gzipのように、圧縮率がわずかに高くなることがあります。 mod_deflateを選択する必要があるもう1つの理由は、mod_gzipとしてサポートされているため、ドキュメント化されているため、構成が簡単になるためです。詳細は here で確認できます。

3
William Dresker

Linuxjournal.comでこの記事を確認してください。

http://www.linuxjournal.com/article/6802

それ以外はmod_deflateの方が設定が簡単で、通常はApacheパッケージに付属しています。

1
fotuzlab