欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國(guó) | 本篇譯稿最后更新:2006年1月25日 | 獲取最新版本

Apache模塊 mod_deflate

說明壓縮發(fā)送給客戶端的內(nèi)容
狀態(tài)擴(kuò)展(E)
模塊名deflate_module
源文件mod_deflate.c

概述

mod_deflate模塊提供了DEFLATE輸出過濾器,允許服務(wù)器在將輸出內(nèi)容發(fā)送到客戶端以前進(jìn)行壓縮,以節(jié)約帶寬。

top

配置舉例

這是一個(gè)針對(duì)心急者的示范配置:

僅僅壓縮少數(shù)幾種類型

AddOutputFilterByType DEFLATE text/html text/plain text/xml

以下允許壓縮更多內(nèi)容的配置更加復(fù)雜。除非你明白所有的配置細(xì)節(jié),否則請(qǐng)不要使用。

Compress everything except images

<Location />
# 插入過濾器
SetOutputFilter DEFLATE

# Netscape 4.x 有一些問題...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 有更多的問題
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE 會(huì)偽裝成 Netscape ,但是事實(shí)上它沒有問題
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# 不壓縮圖片
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

# 確保代理不會(huì)發(fā)送錯(cuò)誤的內(nèi)容
Header append Vary User-Agent env=!dont-vary
</Location>

top

啟用壓縮

輸出壓縮

壓縮是由DEFLATE過濾器實(shí)現(xiàn)的。下面的指令會(huì)對(duì)其所在容器中的文檔啟用壓縮:

SetOutputFilter DEFLATE

一些流行的瀏覽器不能正確處理所有壓縮內(nèi)容,因此你可能需要將gzip-only-text/html標(biāo)記設(shè)為"1"來(lái)僅僅允許壓縮html文件(見下面)。如果你設(shè)置了"1"以外的任何值,都將被忽略。

如果你想將壓縮限制在幾種特定的MIME類型上,可以使用AddOutputFilterByType指令。下面的例子僅僅允許對(duì)html文檔進(jìn)行壓縮:

<Directory "/your-server-root/manual">
AddOutputFilterByType DEFLATE text/html
</Directory>

對(duì)于那些不能正確處理所有壓縮內(nèi)容的瀏覽器,可以使用BrowserMatch指令針對(duì)特定的瀏覽器設(shè)置no-gzip標(biāo)記以取消壓縮。為了取得更好的效果,你可以將no-gzipgzip-only-text/html配合使用。在這種情況下,下面的設(shè)置將會(huì)覆蓋上面的設(shè)置?纯磸配置示例中摘錄的片斷:

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

第一條指令表示如果User-Agent字符串表示它是一個(gè)Navigator 4.x的瀏覽器,這種瀏覽器不能正確處理除text/html之外的所有類型。而4.06, 4.07, 4.08版的Navigator完全不能處理任何壓縮內(nèi)容,因此第二條指令對(duì)這些瀏覽器完全禁用壓縮。

第三個(gè)BrowserMatch指令修正了上面兩條對(duì)瀏覽器的推測(cè),因?yàn)槲④浀腎E也將它自己標(biāo)識(shí)成"Mozilla/4"但是它實(shí)際上能夠處理所有的壓縮內(nèi)容。因此又在User-Agent頭中額外匹配了字符串"MSIE"("\b"表示"單詞邊界"),并且取消了前面的限制。

注意

DEFLATE過濾器總是在類似于PHP或SSI之類的資源過濾器之后插入,它永遠(yuǎn)不會(huì)觸及到內(nèi)部請(qǐng)求。

注意

通過SetEnv設(shè)置force-gzip環(huán)境變量將會(huì)忽略瀏覽器的"accept-encoding",始終發(fā)送經(jīng)過壓縮的內(nèi)容。

輸出解壓

mod_deflate模塊還提供了一個(gè)解壓gzip格式的應(yīng)答體的功能。為了激活這個(gè)特性你必須使用SetOutputFilterAddOutputFilter指令將INFLATE過濾器插入到輸入過濾器鏈:

<Location /dav-area>
ProxyPass http://example.com/
SetOutputFilter INFLATE
</Location>

這個(gè)例子將會(huì)解壓來(lái)自example.com的輸出,這樣其它過濾器就可以做進(jìn)一步的處理了。

輸入解壓

mod_deflate模塊還提供了一個(gè)解壓gzip格式的請(qǐng)求體的功能。為了激活這個(gè)特性你必須使用SetInputFilterAddInputFilter指令將DEFLATE過濾器插入到輸入過濾器鏈。例如:

<Location /dav-area>
SetInputFilter DEFLATE
</Location>

這樣,如果包含"Content-Encoding: gzip"頭的請(qǐng)求體將會(huì)被自動(dòng)解壓。極少有瀏覽器壓縮請(qǐng)求體。然而有些程序的確這么做了,比如一些WebDAV客戶端程序。

注意 Content-Length

如果你自己處理請(qǐng)求體,請(qǐng)注意Content-Length頭僅僅表示客戶端輸入的數(shù)據(jù)長(zhǎng)度,而不是解壓后的實(shí)際數(shù)據(jù)長(zhǎng)度。

top

代理服務(wù)器

mod_deflate模塊發(fā)送一個(gè)"Vary: Accept-Encoding"HTTP應(yīng)答頭以提醒代理服務(wù)器:只對(duì)發(fā)送了正確"Accept-Encoding"頭的客戶端發(fā)送緩存的應(yīng)答。這樣可以防止不能正確處理壓縮內(nèi)容的瀏覽器接受到經(jīng)過壓縮的內(nèi)容。

如果你按照某些特殊的條件拒絕了某些客戶端的訪問(比如User-Agent頭),你必須手動(dòng)配置一個(gè)額外的Vary頭提醒代理服務(wù)器做額外的限制。比如,在一個(gè)典型的配置中的某處,如果額外的DEFLATE過濾器是否生效取決于User-Agent頭,你應(yīng)當(dāng)在此處添加:

Header append Vary User-Agent

如果依照除請(qǐng)求頭以外的其他條件決定是否使用壓縮(例如:HTTP版本),你必須設(shè)置Vary頭的值為"*"來(lái)完全阻止代理服務(wù)器的緩存。

示例

Header set Vary *

top

DeflateBufferSize 指令

說明用于zlib一次壓縮的片斷大小(字節(jié))
語(yǔ)法DeflateBufferSize value
默認(rèn)值DeflateBufferSize 8096
作用域server config, virtual host
狀態(tài)擴(kuò)展(E)
模塊mod_deflate

DeflateBufferSize指令定義了zlib一次壓縮的片斷的字節(jié)數(shù)。

top

DeflateCompressionLevel 指令

說明將輸出內(nèi)容壓縮的程度
語(yǔ)法DeflateCompressionLevel value
默認(rèn)值Zlib的默認(rèn)值
作用域server config, virtual host
狀態(tài)擴(kuò)展(E)
模塊mod_deflate
兼容性僅在 Apache 2.0.45 及以后的版本中可用

DeflateCompressionLevel指令設(shè)置壓縮程度,越高的壓縮程度就會(huì)有越好的壓縮效果,同時(shí)也意味著占用越多的CPU資源。

取值范圍在 1(最低壓縮率) 到 9(最高壓縮率)之間。

top

DeflateFilterNote 指令

說明在日志中放置壓縮率標(biāo)記
語(yǔ)法DeflateFilterNote [type] notename
作用域server config, virtual host
狀態(tài)擴(kuò)展(E)
模塊mod_deflate
兼容性type僅在2.0.45以后版本中可用

DeflateFilterNote指令指定將一個(gè)指示壓縮率的標(biāo)記附加在請(qǐng)求之后。notename就表示這個(gè)標(biāo)記的名字。你可以為了某種統(tǒng)計(jì)目的將這個(gè)標(biāo)記的名字添加到訪問日志中。

示例

DeflateFilterNote ratio

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

如果你想從日志中得到更多精確的數(shù)據(jù),可以使用type參數(shù)指定notename標(biāo)記所記錄的數(shù)據(jù)類型。type的取值范圍如下:

Input
在標(biāo)記中存儲(chǔ)過濾器輸入流的字節(jié)數(shù)。
Output
在標(biāo)記中存儲(chǔ)過濾器輸出流的字節(jié)數(shù)。
Ratio
在標(biāo)記中存儲(chǔ)過濾器的壓縮比(輸出/輸入*100)。這是type的默認(rèn)值。

于是,就可以這樣記錄:

Accurate Logging

DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio

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

參見

top

DeflateMemLevel 指令

說明zlib在壓縮時(shí)最多可以使用多少內(nèi)存
語(yǔ)法DeflateMemLevel value
默認(rèn)值DeflateMemLevel 9
作用域server config, virtual host
狀態(tài)擴(kuò)展(E)
模塊mod_deflate

DeflateMemLevel指令指定zlib在壓縮時(shí)最多可以使用多少內(nèi)存(取值范圍在1到9之間)。

top

DeflateWindowSize 指令

說明Zlib壓縮窗口(compression window)的大小
語(yǔ)法DeflateWindowSize value
默認(rèn)值DeflateWindowSize 15
作用域server config, virtual host
狀態(tài)擴(kuò)展(E)
模塊mod_deflate

DeflateWindowSize指令設(shè)定zlib壓縮窗口(compression window)的大小(取值范圍在1到15之間)。通常窗口越大壓縮效果越好。