### HttpGzip模塊
這個模塊支持在線實時壓縮輸出數據流
__使用范例__
~~~
: gzip on;
: gzip_min_length 1000;
: gzip_proxied expired no-cache no-store private auth;
: gzip_types text/plain application/xml;
~~~
內置變量 $gzip_ratio 可以獲取到gzip的壓縮比率
### 指令
- [#gzip gzip]
- [#gzip_buffers gzip_buffers]
- [#gzip_comp_level gzip_comp_level]
- [#gzip_min_length gzip_min_length]
- [#gzip_http_version gzip_http_version]
- [#gzip_proxied gzip_proxied]
- [#gzip_types gzip_types]
### gzip
**語法:***gzip on|off*
**默認值:***gzip off*
**作用域:***http, server, location, if (x) location*
開啟或者關閉gzip模塊
### gzip_buffers
**語法:***gzip_buffers number size*
**默認值:***gzip_buffers 4 4k/8k*
**作用域:***http, server, location*
設置系統獲取幾個單位的緩存用于存儲gzip的壓縮結果數據流。 例如 4 4k 代表以4k為單位,按照原始數據大小以4k為單位的4倍申請內存。 4 8k 代表以8k為單位,按照原始數據大小以8k為單位的4倍申請內存。
如果沒有設置,默認值是申請跟原始數據相同大小的內存空間去存儲gzip壓縮結果。
### gzip_comp_level
**語法:***gzip_comp_level 1..9*
**默認值:***gzip_comp_level 1*
**作用域:***http, server, location*
gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢(傳輸快但比較消耗cpu)。
### gzip_min_length
**語法:***gzip_min_length length*
**默認值:***gzip_min_length 0*
**作用域:***http, server, location*
設置允許壓縮的頁面最小字節數,頁面字節數從header頭中的Content-Length中進行獲取。
默認值是0,不管頁面多大都壓縮。
建議設置成大于1k的字節數,小于1k可能會越壓越大。 即: gzip_min_length 1024
### gzip_http_version
**語法:***gzip_http_version 1.0|1.1*
**默認值:***gzip_http_version 1.1*
**作用域:***http, server, location*
識別http的協議版本。由于早期的一些瀏覽器或者http客戶端,可能不支持gzip自解壓,用戶就會看到亂碼,所以做一些判斷還是有必要的。 注:21世紀都來了,現在除了類似于百度的蜘蛛之類的東西不支持自解壓,99.99%的瀏覽器基本上都支持gzip解壓了,所以可以不用設這個值,保持系統默認即可。
### gzip_proxied
**語法:***gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] ...*
**默認值:***gzip_proxied off*
**作用域:***http, server, location*
Nginx作為反向代理的時候啟用,開啟或者關閉后端服務器返回的結果,匹配的前提是后端服務器必須要返回包含"Via"的 header頭。
- off - 關閉所有的代理結果數據的壓縮
- expired - 啟用壓縮,如果header頭中包含 "Expires" 頭信息
- no-cache - 啟用壓縮,如果header頭中包含 "Cache-Control:no-cache" 頭信息
- no-store - 啟用壓縮,如果header頭中包含 "Cache-Control:no-store" 頭信息
- private - 啟用壓縮,如果header頭中包含 "Cache-Control:private" 頭信息
- no_last_modified - 啟用壓縮,如果header頭中不包含 "Last-Modified" 頭信息
- no_etag - 啟用壓縮 ,如果header頭中不包含 "ETag" 頭信息
- auth - 啟用壓縮 , 如果header頭中包含 "Authorization" 頭信息
- any - 無條件啟用壓縮
### gzip_types
**語法:***gzip_types mime-type [mime-type ...]*
**默認值:***gzip_types text/html*
**作用域:***http, server, location*
匹配MIME類型進行壓縮,(無論是否指定)"text/html"類型總是會被壓縮的。
注意:如果作為http server來使用,主配置文件中要包含文件類型配置文件
~~~
http
{
include conf/mime.types;
......
}
~~~
如果你希望壓縮常規的文件類型,可以寫成這個樣子
~~~
http
{
: include conf/mime.types;
: gzip on;
: gzip_min_length 1000;
: gzip_buffers 4 8k;
: gzip_http_version 1.1;
: gzip_types text/plain application/x-javascript text/css text/html application/xml;
: ......
}
~~~
### References
[原始文檔](http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html "http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html")
- 主要文檔
- Nginx功能概述
- 為什么選擇Nginx
- Nginx安裝
- 運行和控制Nginx
- 配置符號參考
- 優化 Nginx
- 常見問題(FAQ)
- 調試 nginx
- 核心模塊
- Nginx主模塊
- Nginx事件模塊
- 基本模塊
- http核心模塊
- HttpIndex模塊
- HttpAccess模塊
- HttpAuthBasic模塊
- HttpAutoindex模塊
- Browser模塊
- Charset模塊
- HttpEmptyGif模塊
- HttpFcgi模塊
- Geo模塊
- HttpGzip模塊
- HttpHeaders模塊
- HttpIndex模塊
- HttpReferer模塊
- HttpLimit zone
- HttpLimitReqest模塊
- HttpLog模塊
- map
- Memcached
- HttpProxy模塊
- HttpRewrite模塊
- HttpSSI模塊
- HttpUserId
- 其他模塊
- Addition模塊
- EmbeddedPerl
- flv
- HttpGzipStatic
- RandomIndex
- HttpGeoIP
- HttpRealIp
- HttpSSL
- StubStatus模塊
- HttpSubstitution
- HttpDav模塊
- GooglePerftools
- HttpXSLT
- HttpSecureLink
- HttpImageFilter
- mail模塊
- MailCore
- MailAuth
- MailProxy
- MailSSL
- 安裝
- nginx在windows上的安裝
- nginx在freebsd上的安裝
- nginx在ubuntu上的安裝
- nginx在fedora上的安裝
- nginx php-fpm安裝配置
- 配置示例和方法
- 完整例子
- 完整例子2
- 虛擬主機
- 負載均衡
- nginx防盜鏈
- HWLoadbalancerCheckErrors