Apache HTTP サーバ バージョン 2.4

| 説明: | クライアントへ送られる前にコンテンツを圧縮する | 
|---|---|
| ステータス: | Extension | 
| モジュール識別子: | deflate_module | 
| ソースファイル: | mod_deflate.c | 
mod_deflate モジュールは DEFLATE
    出力フィルタを提供します。これはサーバからの出力を、ネットワークを
    通してクライアントに送る前に圧縮することを可能にします。

 DeflateAlterETag
 DeflateAlterETag DeflateBufferSize
 DeflateBufferSize DeflateCompressionLevel
 DeflateCompressionLevel DeflateFilterNote
 DeflateFilterNote DeflateInflateLimitRequestBody
 DeflateInflateLimitRequestBody DeflateInflateRatioBurst
 DeflateInflateRatioBurst DeflateInflateRatioLimit
 DeflateInflateRatioLimit DeflateMemLevel
 DeflateMemLevel DeflateWindowSize
 DeflateWindowSize下にせっかちな人向けの簡単な設定例を示します。
      AddOutputFilterByType DEFLATE text/html text/plain text/xml
    
以下の設定はコンテンツをより圧縮しますが、ずっと複雑な設定になります。 設定の隅々までよく理解しないで使わないでください。
      <Location />
      
        # Insert filter
        SetOutputFilter DEFLATE
        
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4         gzip-only-text/html
        
        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        
        # MSIE masquerades as Netscape, but it is fine
        # BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
        
        # Don't compress images
        SetEnvIfNoCase Request_URI \
        
          \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        
        
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
      
      </Location>
    
圧縮機能は DEFLATE フィルタ
      により実装されています。以下のディレクティブはそのディレクティブのある
      コンテナ中のドキュメントを圧縮するようにします:
        SetOutputFilter DEFLATE
      
よく使われているブラウザでは、すべてのコンテンツに対する
      圧縮を扱えるわけではありません。ですから、gzip-only-text/html 
      ノートを 1 にして、html ファイルに対してのみ
      圧縮が働くようにした方がよいかもしれません (以下参照)
      この値を 1 以外の値に設定した場合は無視されます。
通常、特定のMIMEタイプについてのみ圧縮したいのであれば、
      AddOutputFilterByType
      ディレクティブを使用します。次に Apache のドキュメントの html
      ファイルのみの圧縮を有効にする例を示します。
        <Directory "/your-server-root/manual">
        
          AddOutputFilterByType DEFLATE text/html
        
        </Directory>
      
全てのファイルタイプでの圧縮に問題を抱えているブラウザに対しては、
      BrowserMatch
      ディレクティブを使用して、特定のブラウザに no-gzip
      ノートをセットし、圧縮が行なわれないようにします。
      no-gzip と gzip-only-text/html
      を組み合わせることで上手く対処できます。
      この場合、前者が後者をオーバーライドします。
      上記の設定例の抜粋を
      次に示しますのでご覧下さい。
        BrowserMatch ^Mozilla/4         gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
      
まず始めに User-Agent 文字列から Netscape Navigator
      4.x であるかどうかを調べます。これらのバージョンでは、
      text/html 以外のタイプの圧縮を扱うことができません。
      4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。
      ですからこれらに対しては、完全に deflate フィルタをオフにします。
3 番目の BrowserMatch
      ディレクティブで、推測したユーザーエージェントを修正します。
      なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、
      これらは実際には圧縮を扱うことができるからです。
      User-Agent ヘッダを "MSIE"
      (\b は「単語の境界」を意味します) の追加文字で検査して、
      これ以前に設定した制限を再び解除します。
DEFLATE フィルタは必ず、PHP や SSI といった RESOURCE
        フィルタの後になります。
        DEFLATE フィルタは内部的なサブリクエストを関知しません。
      mod_deflate モジュールは、gzip 圧縮されたレスポンス
      本文を inflate/uncompress するフィルタも提供しています。
      この機能を有効にするには、SetOutputFilter
      や AddOutputFilter を使って、
      INFLATE フィルタを出力フィルタチェインに挿入します。
      例えば次のようにします。
        <Location /dav-area>
        
          ProxyPass http://example.com/
          SetOutputFilter INFLATE
        
        </Location>
      
この例では、example.com からの gzip 圧縮された出力を伸長し、 その他のフィルタがさらにその出力を処理できるようにします。
mod_deflate モジュールは、gzip
      で圧縮されたリクエスト本体を伸張するフィルタも提供しています。
      この機能を有効にするには、SetInputFilter
      か AddInputFilter を使用して、
      DEFLATE フィルタを入力フィルタチェインに組み込みます。
      例えば次のようになります。
        <Location /dav-area>
        
          SetInputFilter DEFLATE
        
        </Location>
      
この設定であれば、Content-Encoding: gzip
      ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。
      gzip リクエスト本体を送信するブラウザはあまりありません。
      しかし、例えば WebDAV
      クライアントの幾つかなど、特別なアプリケーションでリクエストの
      圧縮を実際にサポートしているものもあります。
リクエスト本体それ自体を評価する場合は、Content-Length
        ヘッダを信用しないでください。Content-Length ヘッダは、
        クライアントから送信されるデータの長さを反映しているのであって、
        伸張されたデータストリームのバイトカウントではありません。
mod_deflate モジュールは Vary: Accept-Encoding
    HTTP 応答ヘッダを送信して、適切な Accept-Encoding
    リクエストヘッダを送信するクライアントに対してのみ、
    プロクシサーバがキャッシュした応答を送信するように注意を喚起します。
    このようにして、圧縮を扱うことのできないクライアントに
    圧縮された内容が送られることのないようにします。
もし特別に何かに依存して除外したい場合、例えば User-Agent
    ヘッダなどに依存している場合、手動で Vary ヘッダを設定して、
    追加の制限についてプロクシサーバに注意を行なう必要があります。
    例えば User-Agent に依存して DEFLATE
    を追加する典型的な設定では、次のように追加することになります。
      Header append Vary User-Agent
    
リクエストヘッダ以外の情報 (例えば HTTP バージョン)
    に依存して圧縮するかどうか決める場合、
    Vary ヘッダを * に設定する必要があります。
    このようにすると、仕様に準拠したプロクシはキャッシュを全く行なわなくなります。
      Header set Vary *
    
| 説明: | How the outgoing ETag header should be modified during compression | 
|---|---|
| 構文: | DeflateAlterETag AddSuffix|NoChange|Remove | 
| デフォルト: | DeflateAlterETag AddSuffix | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | Available in Apache 2.4.58 and later | 
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
| 説明: | zlib が一度に圧縮する塊の大きさ | 
|---|---|
| 構文: | DeflateBufferSize value | 
| デフォルト: | DeflateBufferSize 8096 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
DeflateBufferSize ディレクティブは
    zlib が一度に圧縮する塊の大きさをバイト単位で指定します。
| 説明: | 出力に対して行なう圧縮の程度 | 
|---|---|
| 構文: | DeflateCompressionLevel value | 
| デフォルト: | Zlib のデフォルト | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | This directive is available since Apache 2.0.45 | 
DeflateCompressionLevel ディレクティブは
         圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、
         CPU 資源を消費します。
値は 1 (低圧縮) から 9 (高圧縮) です。
| 説明: | ロギング用に圧縮比をメモに追加 | 
|---|---|
| 構文: | DeflateFilterNote [type] notename | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | type is available since Apache 2.0.45 | 
DeflateFilterNote ディレクティブは
    圧縮比に関するメモがリクエストに付加されることを指定します。
    メモ (note) の名前はディレクティブに指定された値です。
    メモはアクセスログに
    値を記録し、統計を取る目的にも使えます。
      DeflateFilterNote ratio
      
      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
      CustomLog logs/deflate_log deflate
    
ログからもっと精密な値を抽出したい場合は、type 引数を使用して、データタイプをログのメモとして残すように指定できます。 type は次のうちの一つです。
InputOutputRatio出力 / 入力 * 100) をメモに保存する。
      type 引数を省略した場合は、これがデフォルトとなります。まとめると、次のようにログを取ることになるでしょう。
      DeflateFilterNote Input instream
      DeflateFilterNote Output outstream
      DeflateFilterNote Ratio ratio
      
      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
      CustomLog logs/deflate_log deflate
    
| 説明: | Maximum size of inflated request bodies | 
|---|---|
| 構文: | DeflateInflateLimitRequestBody value | 
| デフォルト: | None, but LimitRequestBody applies after deflation | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | 2.4.10 and later | 
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
| 説明: | Maximum number of times the inflation ratio for request bodies can be crossed | 
|---|---|
| 構文: | DeflateInflateRatioBurst value | 
| デフォルト: | DeflateInflateRatioBurst 3 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | 2.4.10 and later | 
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
| 説明: | Maximum inflation ratio for request bodies | 
|---|---|
| 構文: | DeflateInflateRatioLimit value | 
| デフォルト: | DeflateInflateRatioLimit 200 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
| 互換性: | 2.4.10 and later | 
このディレクティブの解説文書は まだ翻訳されていません。英語版をご覧ください。
| 説明: | zlib が圧縮に使うメモリのレベルを指定 | 
|---|---|
| 構文: | DeflateMemLevel value | 
| デフォルト: | DeflateMemLevel 9 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
DeflateMemLevel ディレクティブは
    zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
    (訳注: 2 を底とする対数の値になります。
    8 程度が良いでしょう。)
| 説明: | Zlib の圧縮用ウィンドウの大きさ | 
|---|---|
| 構文: | DeflateWindowSize value | 
| デフォルト: | DeflateWindowSize 15 | 
| コンテキスト: | サーバ設定ファイル, バーチャルホスト | 
| ステータス: | Extension | 
| モジュール: | mod_deflate | 
DeflateWindowSize ディレクティブは
    zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) 
    の大きさを指定します (1 から 15 の間の値)。
    一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
    (訳注: 2 を底とする対数の値になります。
    8 から 15 にするのが良いでしょう。)