GCS Amplitude
GCS Amplitude

Apache モジュール mod_deflate

Insert filter

Netscape 4.x has some problems

Netscape 4.06-4.08 have some more problems

MSIE masquerades as Netscape, but it is fine

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Don't compress images

Make sure proxies don't deliver the wrong content

出力フィルタを提供します。これはサーバからの出力を、ネットワークを 通してクライアントに送る前に圧縮することを可能にします。

AddOutputFilterByType DEFLATE text/html text/plain text/xml

\.(?:gif|jpe?g|png)$ no-gzip dont-vary

Header append Vary User-Agent env=!dont-vary

よく使われているブラウザでは、すべてのコンテンツに対する 圧縮を扱えるわけではありません。ですから、gzip-only-text/html

にして、html ファイルに対してのみ 圧縮が働くようにした方がよいかもしれません (以下参照) この値を 1 以外の値に設定した場合は無視されます。

ディレクティブを使用します。次に Apache のドキュメントの html ファイルのみの圧縮を有効にする例を示します。AddOutputFilterByType

ディレクティブを使用して、特定のブラウザに BrowserMatchno-gzip

ノートをセットし、圧縮が行なわれないようにします。 no-gzip

を組み合わせることで上手く対処できます。 この場合、前者が後者をオーバーライドします。 上記の設定例の抜粋を 次に示しますのでご覧下さい。

文字列から Netscape Navigator 4.x であるかどうかを調べます。これらのバージョンでは、 text/html

以外のタイプの圧縮を扱うことができません。 4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。 ですからこれらに対しては、完全に deflate フィルタをオフにします。

ディレクティブで、推測したユーザーエージェントを修正します。 なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、 これらは実際には圧縮を扱うことができるからです。 BrowserMatchUser-Agent

は「単語の境界」を意味します) の追加文字で検査して、 これ以前に設定した制限を再び解除します。

フィルタは必ず、PHP や SSI といった RESOURCE フィルタの後になります。 DEFLATE フィルタは内部的なサブリクエストを関知しません。

モジュールは、gzip 圧縮されたレスポンス 本文を inflate/uncompress するフィルタも提供しています。 この機能を有効にするには、mod_deflate

ProxyPass http://example.com/

この例では、example.com からの gzip 圧縮された出力を伸長し、 その他のフィルタがさらにその出力を処理できるようにします。

ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。 gzip リクエスト本体を送信するブラウザはあまりありません。 しかし、例えば WebDAV クライアントの幾つかなど、特別なアプリケーションでリクエストの 圧縮を実際にサポートしているものもあります。

リクエスト本体それ自体を評価する場合は、 Content-Length ヘッダを信用しないでください。Content-Length ヘッダは、 クライアントから送信されるデータの長さを反映しているのであって、 伸張されたデータストリームの

ヘッダを設定して、 追加の制限についてプロクシサーバに注意を行なう必要があります。 例えば User-Agent

リクエストヘッダ以外の情報 (例えば HTTP バージョン) に依存して圧縮するかどうか決める場合、 Vary

値は 1 (低圧縮) から 9 (高圧縮) です。

LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate

CustomLog logs/deflate_log deflate

ログからもっと精密な値を抽出したい場合は、type 引数を使用して、データタイプをログのメモとして残すように指定できます。 type は次のうちの一つです。

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate

None, but LimitRequestBody applies after deflation

モジュール | ディレクティブ | FAQ | 用語 | サイトマップ

Apache HTTP サーバ バージョン 2.4

Apache モジュール mod_deflate

翻訳済み言語: en | fr | ja | ko

圧縮を有効にする

圧縮機能は DEFLATE フィルタ により実装されています。以下のディレクティブはそのディレクティブのある コンテナ中のドキュメントを圧縮するようにします:

Proxy サーバでの扱い

mod_deflate モジュールは Vary: Accept-Encoding HTTP 応答ヘッダを送信して、適切な Accept-Encoding リクエストヘッダを送信するクライアントに対してのみ、 プロクシサーバがキャッシュした応答を送信するように注意を喚起します。 このようにして、圧縮を扱うことのできないクライアントに 圧縮された内容が送られることのないようにします。

DeflateBufferSize ディレクティブ

DeflateBufferSize ディレクティブは zlib が一度に圧縮する塊の大きさをバイト単位で指定します。

DeflateCompressionLevel ディレクティブ

DeflateCompressionLevel ディレクティブは 圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、 CPU 資源を消費します。

DeflateFilterNote ディレクティブ

DeflateFilterNote ディレクティブは 圧縮比に関するメモがリクエストに付加されることを指定します。 メモ (note) の名前はディレクティブに指定された値です。 メモはアクセスログに 値を記録し、統計を取る目的にも使えます。

DeflateInflateLimitRequestBody ディレクティブ

このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。

DeflateInflateRatioBurst ディレクティブ

このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。

DeflateInflateRatioLimit ディレクティブ

このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。

DeflateMemLevel ディレクティブ

DeflateMemLevel ディレクティブは zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。 (訳注: 2 を底とする対数の値になります。 8 程度が良いでしょう。)

DeflateWindowSize ディレクティブ

DeflateWindowSize ディレクティブは zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) の大きさを指定します (1 から 15 の間の値)。 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。 (訳注: 2 を底とする対数の値になります。 8 から 15 にするのが良いでしょう。)