Nginx配置 - Gzip壓縮

HttpGzip模塊

這個(gè)模塊支持在線實(shí)時(shí)壓縮輸出數(shù)據(jù)流

使用范例

gzip             on;
gzip_min_length  1k;
gzip_comp_level  6;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/css application/xml application/javascript application/json;

內(nèi)置變量 $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

默認(rèn)值: gzip off

作用域: http, server, location, if (x) location

開啟或者關(guān)閉gzip模塊

gzip_buffers

語法: gzip_buffers number size

默認(rèn)值: gzip_buffers 4 4k/8k

作用域: http, server, location

設(shè)置系統(tǒng)獲取幾個(gè)單位的緩存用于存儲(chǔ)gzip的壓縮結(jié)果數(shù)據(jù)流。 例如:

  • 4 4k 代表以4k為單位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請(qǐng)內(nèi)存。
  • 4 8k 代表以8k為單位,按照原始數(shù)據(jù)大小以8k為單位的4倍申請(qǐng)內(nèi)存。

如果沒有設(shè)置,默認(rèn)值是申請(qǐng)跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲(chǔ)gzip壓縮結(jié)果。

gzip_comp_level

語法: gzip_comp_level 1..9

默認(rèn)值: gzip_comp_level 1

作用域: http, server, location

gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢(傳輸快但比較消耗cpu)。

gzip_min_length

語法: gzip_min_length length

默認(rèn)值: gzip_min_length 0

作用域: http, server, location

設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。

默認(rèn)值是0,不管頁面多大都?jí)嚎s。

建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。 即: gzip_min_length 1024

gzip_http_version

語法: gzip_http_version 1.0|1.1

默認(rèn)值: gzip_http_version 1.1

作用域: http, server, location

識(shí)別http的協(xié)議版本。由于早期的一些瀏覽器或者h(yuǎn)ttp客戶端,可能不支持gzip自解壓,用戶就會(huì)看到亂碼,所以做一些判斷還是有必要的。 注:21世紀(jì)都來了,現(xiàn)在除了類似于百度的蜘蛛之類的東西不支持自解壓,99.99%的瀏覽器基本上都支持gzip解壓了,所以可以不用設(shè)這個(gè)值,保持系統(tǒng)默認(rèn)即可。

gzip_proxied

語法: gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] ...

默認(rèn)值: gzip_proxied off

作用域: http, server, location

Nginx作為反向代理的時(shí)候啟用,開啟或者關(guān)閉后端服務(wù)器返回的結(jié)果,匹配的前提是后端服務(wù)器必須要返回包含"Via"的 header頭。

  • off - 關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮
  • 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 ...]

默認(rèn)值: gzip_types text/html

作用域: http, server, location

匹配MIME類型進(jìn)行壓縮,(無論是否指定)"text/html"類型總是會(huì)被壓縮的。

注意:如果作為http server來使用,主配置文件中要包含文件類型配置文件

http
{
  include       conf/mime.types;
  ......
}

如果你希望壓縮常規(guī)的文件類型,可以寫成這個(gè)樣子

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 application/xml application/javascript application/json;

  ......  
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,673評(píng)論 1 41
  • Nginx簡(jiǎn)介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請(qǐng)求時(shí)即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級(jí)一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,210評(píng)論 0 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,539評(píng)論 19 139
  • 1.簡(jiǎn)介: ? Nginx:engine X ,2002年,開源,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 2,000評(píng)論 0 3
  • nginx在工作中已經(jīng)有好幾個(gè)環(huán)境在使用了,每次都是重新去網(wǎng)上扒博客,各種編譯配置,今天自己也整理一份安裝文檔和n...
    AndyChin閱讀 2,399評(píng)論 0 4

友情鏈接更多精彩內(nèi)容