2012-04-21 15 views
28

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

<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> 
+0

[なぜApacheで提供されるテキストファイルにgzipの代わりにdeflateを使うのですか?](http://stackoverflow.com/questions/388595/why-use-deflate-instead-of-gzip-for-text- files-served-by-apache) – KingCrunch

+0

[mod \ _deflateまたはmod \ _gzipの重複がありますか?](http://stackoverflow.com/questions/3173147/mod-deflate-or-mod-gzip-使用すべきである) –

答えて

6

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

テキスト/.* MIMEタイプとして識別されるファイルの場合、圧縮をファイルに適用する前にファイルに適用することができます。これにより、転送されるバイト数が同時に削減され、パフォーマンスが向上します。テストでは、Microsoft OfficeとPostSciptファイルを圧縮モジュールによるトランスポート用にGZIPエンコードすることもできます。

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

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

Accept-encoding: gzip 

Accept-encoding: gzip, deflate 

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

を、この記事を参照してください。http://www.linuxjournal.com/article/6802

+7

この回答は多くの有用な情報を提供しますが、質問には全く言及していません。どちらが良い選択ですか? –

+0

このコピーアンドペーストジョブは、実際の質問に答えることさえできません。なぜそれが積極的に受け入れられたのか分かりません。 – thomasrutter

9

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

2

mod_deflateとmod_gzipを有効にすると、ウェブサイトの訪問者に送信される前にウェブファイルを圧縮するという同じことが基本的に同じです。

2つの違いはありますが、 mod_deflateは時々mod_gzipというようにより良い圧縮率を持つことができます。 mod_deflateを選択すべきもう一つの理由は、mod_gzipとしてより良くサポートされているためです。詳細はhereをご覧ください。

-3

IMHO静的ファイルにはmod_deflateを使用しないでください。代わりに、mod_rewriteを使用して圧縮されたファイルを提供してください(7zip created gzip AFAIK)。 Apacheはgzip形式の静的ファイルをキャッシュしていません。

ダイナミックファイルの場合:使用可能な帯域幅に依存します - mod_deflateは多くの処理能力を必要としますが、サーバがネットワークをオーバーフローする可能性がある場合に使用できます。

+0

-1あなたの答えは意見に基づくものであり、その意見を裏付けるものは何もありません。あなたのユースケースに応じて長所と短所を秤量する必要があります。 – Precastic

+0

私のコメントは明白なことを述べていると思います。 Apacheは、静的に圧縮されたファイルを提供する場合、約10倍以上のファイルを処理できます。そして、あなたは7zipが小さいzipファイルを作成してからgzipを作成するので、約10%の帯域幅を節約できます。あなたはgzippingを使わなくてもやや良い応答時間を持つでしょう。そして、あなたは同じ静的ファイルを何度も何度も詰め込むためのリソースを無駄にしています。全体的なmod_deflateは良いモジュールですが、動的ファイルに対してのみ使用します。 – azazil

3

mod_gzipとmod_deflateは、gzip圧縮をApacheに追加するための2つの代替モジュールです。 mod_deflateは最近モダンなもので、今日はApacheを推奨しています。

異なる圧縮方式を使用していると考えて名前に惑わされないようにしてください。どちらもgzip(DEFLATE圧縮形式のラッパー)を使用しています。 mod_gzipという名前が取られたため、後者はmod_deflateと呼ばれています。両方とも、基本的に同等の設定で同じ圧縮レベルを達成します。

これは設定が異なるため、使用している特定のドキュメントを探す必要があります。

+0

数年後にチャットして、ついに誰かがOPに実際の答えを投稿します。 – MarsAndBack

関連する問題