mod_deflate.xml.ja revision b475917ddf898282aa51ce31b3275c2c4783ce98
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<?xml version="1.0" encoding="UTF-8" ?>
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<!-- English Revision: 420990:1673892 (outdated) -->
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<!--
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering Licensed to the Apache Software Foundation (ASF) under one or more
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering contributor license agreements. See the NOTICE file distributed with
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering this work for additional information regarding copyright ownership.
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering The ASF licenses this file to You under the Apache License, Version 2.0
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering (the "License"); you may not use this file except in compliance with
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering the License. You may obtain a copy of the License at
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering http://www.apache.org/licenses/LICENSE-2.0
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering Unless required by applicable law or agreed to in writing, software
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering distributed under the License is distributed on an "AS IS" BASIS,
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering See the License for the specific language governing permissions and
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering limitations under the License.
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering-->
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<modulesynopsis metafile="mod_deflate.xml.meta">
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<name>mod_deflate</name>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering<description>クライアントへ送られる前にコンテンツを圧縮する</description>
40ca29a1370379d43e44c0ed425eecc7218dcbcaLennart Poettering<status>Extension</status>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering<sourcefile>mod_deflate.c</sourcefile>
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering<identifier>deflate_module</identifier>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<summary>
4de33e7f3238a6fe616e61139ab87e221572e5e5Lennart Poettering <p><module>mod_deflate</module> モジュールは <code>DEFLATE</code>
4bcc8c3cb57733de6eeb2528a194501fade11e6bZbigniew Jędrzejewski-Szmek 出力フィルタを提供します。これはサーバからの出力を、ネットワークを
94676f3e9352cbf1f72e0a512ee0d2ed83ff676dLennart Poettering 通してクライアントに送る前に圧縮することを可能にします。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</summary>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering<seealso><a href="/filter.html">Filters</a></seealso>
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<section id="recommended"><title>サンプル設定</title>
6577c7cea72f19185ad999c223bcf663c010dc6fLennart Poettering <p>下にせっかちな人向けの簡単な設定例を示します。</p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering <example><title>数タイプのみ圧縮する</title>
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering AddOutputFilterByType DEFLATE text/html text/plain text/xml
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering </example>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering
1ac67edb7c4d31a287fa98c0b554ae98bd34e71bLennart Poettering <p>以下の設定はコンテンツをより圧縮しますが、ずっと複雑な設定になります。
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering 設定の隅々までよく理解しないで使わないでください。</p>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <example><title>画像以外全て圧縮する</title>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering &lt;Location /&gt;<br />
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <indent>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering # Insert filter<br />
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering SetOutputFilter DEFLATE<br />
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering <br />
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering # Netscape 4.x has some problems...<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho # Netscape 4.06-4.08 have some more problems<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho # MSIE masquerades as Netscape, but it is fine<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering <br />
c2756a68401102786be343712c0c35acbd73d28dLennart Poettering # Don't compress images<br />
601185b43da638b1c74153deae01dbd518680889Zbigniew Jędrzejewski-Szmek SetEnvIfNoCase Request_URI \<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <indent>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </indent>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho # Make sure proxies don't deliver the wrong content<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho Header append Vary User-Agent env=!dont-vary<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </indent>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho &lt;/Location&gt;
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </example>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</section>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<section id="enable"><title>圧縮を有効にする</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <section id="output"><title>Output Compression</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p>圧縮機能は <code>DEFLATE</code> <a href="/filter.html">フィルタ</a>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho により実装されています。以下のディレクティブはそのディレクティブのある
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho コンテナ中のドキュメントを圧縮するようにします:</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <example>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering SetOutputFilter DEFLATE
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering </example>
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p>よく使われているブラウザでは、すべてのコンテンツに対する
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 圧縮を扱えるわけではありません。ですから、<code>gzip-only-text/html</code>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho ノートを <code>1</code> にして、html ファイルに対してのみ
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 圧縮が働くようにした方がよいかもしれません (以下参照)
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho この値を <em><code>1</code> 以外の値</em>に設定した場合は無視されます。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p>通常、特定のMIMEタイプについてのみ圧縮したいのであれば、
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <directive module="core">AddOutputFilterByType</directive>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ディレクティブを使用します。次に Apache のドキュメントの html
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ファイルのみの圧縮を有効にする例を示します。</p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <example>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho &lt;Directory "/your-server-root/manual"&gt;<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <indent>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho AddOutputFilterByType DEFLATE text/html<br />
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </indent>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering &lt;/Directory&gt;
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </example>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <p>全てのファイルタイプでの圧縮に問題を抱えているブラウザに対しては、
66b1e746055b9c56fd72c0451a4cfb2b06cf3f20Lennart Poettering <directive module="mod_setenvif">BrowserMatch</directive>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ディレクティブを使用して、特定のブラウザに <code>no-gzip</code>
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering ノートをセットし、圧縮が行なわれないようにします。
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering <code>no-gzip</code> と <code>gzip-only-text/html</code>
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering を組み合わせることで上手く対処できます。
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering この場合、前者が後者をオーバーライドします。
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering 上記の<a href="#recommended">設定例</a>の抜粋を
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering 次に示しますのでご覧下さい。</p>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <example>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </example>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p>まず始めに <code>User-Agent</code> 文字列から Netscape Navigator
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 4.x であるかどうかを調べます。これらのバージョンでは、
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <code>text/html</code> 以外のタイプの圧縮を扱うことができません。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ですからこれらに対しては、完全に deflate フィルタをオフにします。</p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <p>3 番目の <directive module="mod_setenvif">BrowserMatch</directive>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho ディレクティブで、推測したユーザーエージェントを修正します。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho これらは実際には圧縮を扱うことができるからです。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <code>User-Agent</code> ヘッダを "MSIE"
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho (<code>\b</code> は「単語の境界」を意味します) の追加文字で検査して、
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho これ以前に設定した制限を再び解除します。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <note><title>注</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <code>DEFLATE</code> フィルタは必ず、PHP や SSI といった RESOURCE
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho フィルタの後になります。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho DEFLATE フィルタは内部的なサブリクエストを関知しません。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </note>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <note><title>注</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <directive module="core">SetEnv</directive> で設定される
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <code>force-gzip</code> 環境変数がありますが、これは
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho ブラウザの accept-encoding 設定を無視し、圧縮した出力をします。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </note>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering </section>
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering <section id="inflate"><title>出力の伸長</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p><module>mod_deflate</module> モジュールは、gzip 圧縮されたレスポンス
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 本文を inflate/uncompress するフィルタも提供しています。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho この機能を有効にするには、<directive module="core">SetOutputFilter</directive>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho や <directive module="mod_mime">AddOutputFilter</directive> を使って、
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <code>INFLATE</code> フィルタを出力フィルタチェインに挿入します。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 例えば次のようにします。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
eb9da376d76b48585b3b63b4f91903b54f7abd36Lennart Poettering <example>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering &lt;Location /dav-area&gt;<br />
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <indent>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering ProxyPass http://example.com/<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho SetOutputFilter INFLATE<br />
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </indent>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering &lt;/Location&gt;
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </example>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering <p>この例では、example.com からの gzip 圧縮された出力を伸長し、
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering その他のフィルタがさらにその出力を処理できるようにします。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering </section>
601185b43da638b1c74153deae01dbd518680889Zbigniew Jędrzejewski-Szmek <section id="input"><title>入力の伸張</title>
601185b43da638b1c74153deae01dbd518680889Zbigniew Jędrzejewski-Szmek <p><module>mod_deflate</module> モジュールは、gzip
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering で圧縮されたリクエスト本体を伸張するフィルタも提供しています。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering この機能を有効にするには、<directive module="core">SetInputFilter</directive>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering か <directive module="mod_mime">AddInputFilter</directive> を使用して、
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <code>DEFLATE</code> フィルタを入力フィルタチェインに組み込みます。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering 例えば次のようになります。</p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <example>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering &lt;Location /dav-area&gt;<br />
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <indent>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering SetInputFilter DEFLATE<br />
66b1e746055b9c56fd72c0451a4cfb2b06cf3f20Lennart Poettering </indent>
66b1e746055b9c56fd72c0451a4cfb2b06cf3f20Lennart Poettering &lt;/Location&gt;
66b1e746055b9c56fd72c0451a4cfb2b06cf3f20Lennart Poettering </example>
66b1e746055b9c56fd72c0451a4cfb2b06cf3f20Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <p>この設定であれば、<code>Content-Encoding: gzip</code>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering gzip リクエスト本体を送信するブラウザはあまりありません。
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering しかし、例えば <a href="http://www.webdav.org">WebDAV</a>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering クライアントの幾つかなど、特別なアプリケーションでリクエストの
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering 圧縮を実際にサポートしているものもあります。</p>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <note type="warning"><title>Content-Length に関する注意</title>
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering <p>リクエスト本体それ自体を評価する場合は、<em><code>Content-Length</code>
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering ヘッダを信用しないでください</em>。Content-Length ヘッダは、
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering クライアントから送信されるデータの長さを反映しているのであって、
9f2e86af0600e99cff00d1c92f9bb8d38f29896aLennart Poettering 伸張されたデータストリームの<em>バイトカウントではありません</em>。</p>
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering </note>
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering </section>
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering</section>
c221420be8744bb0f8b8a8145efc1f247f1aa801Lennart Poettering
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering<section id="proxies"><title>Proxy サーバでの扱い</title>
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering <p><module>mod_deflate</module> モジュールは <code>Vary: Accept-Encoding</code>
a6c0353b9268d5b780fb7ff05a10cb5031446e5dLennart Poettering HTTP 応答ヘッダを送信して、適切な <code>Accept-Encoding</code>
6577c7cea72f19185ad999c223bcf663c010dc6fLennart Poettering リクエストヘッダを送信するクライアントに対してのみ、
6577c7cea72f19185ad999c223bcf663c010dc6fLennart Poettering プロクシサーバがキャッシュした応答を送信するように注意を喚起します。
6577c7cea72f19185ad999c223bcf663c010dc6fLennart Poettering このようにして、圧縮を扱うことのできないクライアントに
6577c7cea72f19185ad999c223bcf663c010dc6fLennart Poettering 圧縮された内容が送られることのないようにします。</p>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering <p>もし特別に何かに依存して除外したい場合、例えば <code>User-Agent</code>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering ヘッダなどに依存している場合、手動で <code>Vary</code> ヘッダを設定して、
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering 追加の制限についてプロクシサーバに注意を行なう必要があります。
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering 例えば <code>User-Agent</code> に依存して <code>DEFLATE</code>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering を追加する典型的な設定では、次のように追加することになります。</p>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering <example>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering Header append Vary User-Agent
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering </example>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <p>リクエストヘッダ以外の情報 (<em>例えば</em> HTTP バージョン)
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering に依存して圧縮するかどうか決める場合、
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <code>Vary</code> ヘッダを <code>*</code> に設定する必要があります。
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering このようにすると、仕様に準拠したプロクシはキャッシュを全く行なわなくなります。</p>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <example><title>例</title>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering Header set Vary *
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering </example>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering</section>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<directivesynopsis>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<name>DeflateFilterNote</name>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<description>ロギング用に圧縮比をメモに追加</description>
1ac67edb7c4d31a287fa98c0b554ae98bd34e71bLennart Poettering<syntax>DeflateFilterNote [<var>type</var>] <var>notename</var></syntax>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<contextlist><context>server config</context>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<context>virtual host</context></contextlist>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<compatibility><var>type</var> is available since Apache 2.0.45</compatibility>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering<usage>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <p><directive>DeflateFilterNote</directive> ディレクティブは
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering 圧縮比に関するメモがリクエストに付加されることを指定します。
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering メモ (note) の名前はディレクティブに指定された値です。
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering メモは<a href="/logs.html#accesslog">アクセスログ</a>に
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering 値を記録し、統計を取る目的にも使えます。</p>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <example><title>例</title>
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering DeflateFilterNote ratio<br />
c7040b5d1c2c148f12b6a5eef3dfce1661805131Lennart Poettering <br />
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering CustomLog logs/deflate_log deflate
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering </example>
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering <p>ログからもっと精密な値を抽出したい場合は、<var>type</var>
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering 引数を使用して、データタイプをログのメモとして残すように指定できます。
df31a6c0fe07805cb50045fbe91c2a6e7e430562Lennart Poettering <var>type</var> は次のうちの一つです。</p>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering <dl>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering <dt><code>Input</code></dt>
9b15b7846d4de01bb5d9700a24077787e984e8abLennart Poettering <dd>フィルタの入力ストリームのバイトカウントをメモに保存する。</dd>
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering <dt><code>Output</code></dt>
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering <dd>フィルタの出力ストリームのバイトカウントをメモに保存する。</dd>
095dc59660c3dde782f32fe5a52b577f7700578bLennart Poettering
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <dt><code>Ratio</code></dt>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <dd>圧縮率 (<code>出力 / 入力 * 100</code>) をメモに保存する。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <var>type</var> 引数を省略した場合は、これがデフォルトとなります。</dd>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </dl>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p>まとめると、次のようにログを取ることになるでしょう。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <example><title>精密なログ採取</title>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho DeflateFilterNote Input instream<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho DeflateFilterNote Output outstream<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho DeflateFilterNote Ratio ratio<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho CustomLog logs/deflate_log deflate
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho </example>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<seealso><module>mod_log_config</module></seealso>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<name>DeflateBufferSize</name>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<description>zlib が一度に圧縮する塊の大きさ</description>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<syntax>DeflateBufferSize <var>value</var></syntax>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<default>DeflateBufferSize 8096</default>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<contextlist><context>server config</context>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<context>virtual host</context></contextlist>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p><directive>DeflateBufferSize</directive> ディレクティブは
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho zlib が一度に圧縮する塊の大きさをバイト単位で指定します。</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<name>DeflateWindowSize</name>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<description>Zlib の圧縮用ウィンドウの大きさ</description>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<syntax>DeflateWindowSize <var>value</var></syntax>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<default>DeflateWindowSize 15</default>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<contextlist><context>server config</context>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<context>virtual host</context></contextlist>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p><directive>DeflateWindowSize</directive> ディレクティブは
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ)
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho の大きさを指定します (1 から 15 の間の値)。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho (訳注: 2 を底とする対数の値になります。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 8 から 15 にするのが良いでしょう。)</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<name>DeflateMemLevel</name>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<description>zlib が圧縮に使うメモリのレベルを指定</description>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<syntax>DeflateMemLevel <var>value</var></syntax>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<default>DeflateMemLevel 9</default>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<contextlist><context>server config</context>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<context>virtual host</context></contextlist>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho <p><directive>DeflateMemLevel</directive> ディレクティブは
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho (訳注: 2 を底とする対数の値になります。
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho 8 程度が良いでしょう。)</p>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</usage>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho</directivesynopsis>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho<directivesynopsis>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<name>DeflateCompressionLevel</name>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<description>出力に対して行なう圧縮の程度</description>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<syntax>DeflateCompressionLevel <var>value</var></syntax>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<default>Zlib のデフォルト</default>
eb9da376d76b48585b3b63b4f91903b54f7abd36Lennart Poettering<contextlist><context>server config</context><context>virtual host</context>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering</contextlist>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<compatibility>This directive is available since Apache 2.0.45</compatibility>
4c213d6cf416917c61f82d8bee795b8f3a4c5372WaLyong Cho
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering<usage>
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering <p><directive>DeflateCompressionLevel</directive> ディレクティブは
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering 圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering CPU 資源を消費します。</p>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering <p>値は 1 (低圧縮) から 9 (高圧縮) です。</p>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering</usage>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering</directivesynopsis>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering</modulesynopsis>
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering
d21ed1ead18d16d35c30299a69d3366847f8a039Lennart Poettering