📄 mod_deflate.html
字号:
<div class="warning"><h3>注意 Content-Length</h3>
<p>如果你自己处理请求体,请注意<code>Content-Length</code>头仅仅表示客户端输入的数据长度,而<em>不是</em>解压后的实际数据长度。</p>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="proxies" id="proxies">代理服务器</a></h2>
<p><code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>模块发送一个"<code>Vary: Accept-Encoding</code>"HTTP应答头以提醒代理服务器:只对发送了正确"<code>Accept-Encoding</code>"头的客户端发送缓存的应答。这样可以防止不能正确处理压缩内容的浏览器接受到经过压缩的内容。</p>
<p>如果你按照某些特殊的条件拒绝了某些客户端的访问(比如<code>User-Agent</code>头),你必须手动配置一个额外的<code>Vary</code>头提醒代理服务器做额外的限制。比如,在一个典型的配置中的某处,如果额外的<code>DEFLATE</code>过滤器是否生效取决于<code>User-Agent</code>头,你应当在此处添加:</p>
<div class="example"><p><code>
Header append Vary User-Agent
</code></p></div>
<p>如果依照除请求头以外的其他条件决定是否使用压缩(例如:HTTP版本),你必须设置<code>Vary</code>头的值为"<code>*</code>"来完全阻止代理服务器的缓存。</p>
<div class="example"><h3>示例</h3><p><code>
Header set Vary *
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>用于zlib一次压缩的片断大小(字节)</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>扩展(E)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>mod_deflate</td></tr>
</table>
<p><code class="directive">DeflateBufferSize</code>指令定义了zlib一次压缩的片断的字节数。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>将输出内容压缩的程度</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>Zlib的默认值</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>扩展(E)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>mod_deflate</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td>仅在 Apache 2.0.45 及以后的版本中可用</td></tr>
</table>
<p><code class="directive">DeflateCompressionLevel</code>指令设置压缩程度,越高的压缩程度就会有越好的压缩效果,同时也意味着占用越多的CPU资源。</p>
<p>取值范围在 1(最低压缩率) 到 9(最高压缩率)之间。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>在日志中放置压缩率标记</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>扩展(E)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>mod_deflate</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td><var>type</var>仅在2.0.45以后版本中可用</td></tr>
</table>
<p><code class="directive">DeflateFilterNote</code>指令指定将一个指示压缩率的标记附加在请求之后。<var>notename</var>就表示这个标记的名字。你可以为了某种统计目的将这个标记的名字添加到<a href="../logs.html#accesslog">访问日志</a>中。</p>
<div class="example"><h3>示例</h3><p><code>
DeflateFilterNote ratio<br />
<br />
LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
CustomLog logs/deflate_log deflate
</code></p></div>
<p>如果你想从日志中得到更多精确的数据,可以使用<var>type</var>参数指定<var>notename</var>标记所记录的数据类型。<var>type</var>的取值范围如下:</p>
<dl>
<dt><code>Input</code></dt>
<dd>在标记中存储过滤器输入流的字节数。</dd>
<dt><code>Output</code></dt>
<dd>在标记中存储过滤器输出流的字节数。</dd>
<dt><code>Ratio</code></dt>
<dd>在标记中存储过滤器的压缩比(<code>输出/输入*100</code>)。这是<var>type</var>的默认值。</dd>
</dl>
<p>于是,就可以这样记录:</p>
<div class="example"><h3>Accurate Logging</h3><p><code>
DeflateFilterNote Input instream<br />
DeflateFilterNote Output outstream<br />
DeflateFilterNote Ratio ratio<br />
<br />
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
CustomLog logs/deflate_log deflate
</code></p></div>
<h3>参见</h3>
<ul>
<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>zlib在压缩时最多可以使用多少内存</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>DeflateMemLevel 9</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>扩展(E)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>mod_deflate</td></tr>
</table>
<p><code class="directive">DeflateMemLevel</code>指令指定zlib在压缩时最多可以使用多少内存(取值范围在1到9之间)。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>Zlib压缩窗口(compression window)的大小</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>DeflateWindowSize 15</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>扩展(E)</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td>mod_deflate</td></tr>
</table>
<p><code class="directive">DeflateWindowSize</code>指令设定zlib压缩窗口(compression window)的大小(取值范围在1到15之间)。通常窗口越大压缩效果越好。</p>
</div>
</div>
<div id="footer">
<p class="apache">本文允许自由使用、分发、转载,但必须保留译者署名;详见:<a href="../translator_announcement.html#announcement">译者声明</a>。</p>
<p class="menu"><a href="../mod/index.html">模块索引</a> | <a href="../mod/directives.html">指令索引</a> | <a href="../faq/index.html">常见问题</a> | <a href="../glossary.html">词汇表</a> | <a href="../sitemap.html">站点导航</a></p></div>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -