nginx下gzip配置參數(shù)詳解
Nginx自帶的有g(shù)zip模塊 http://wiki.nginx.org/NginxChsHttpGzipModule ,這個(gè)模塊支持在線(xiàn)實(shí)時(shí)壓縮輸出數(shù)據(jù)流。經(jīng)過(guò)良好的配置優(yōu)化,可以大幅的提升網(wǎng)站的輸出效率。
__使用范例__
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
內(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
語(yǔ)法: gzip on|off
默認(rèn)值: gzip off
作用域: http, server, location, if (x) location
開(kāi)啟或者關(guān)閉gzip模塊
gzip_buffers
語(yǔ)法: 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)存。
如果沒(méi)有設(shè)置,默認(rèn)值是申請(qǐng)跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲(chǔ)gzip壓縮結(jié)果。
gzip_comp_level
語(yǔ)法: gzip_comp_level 1..9
默認(rèn)值: gzip_comp_level 1
作用域: http, server, location
gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢(傳輸快但比較消耗cpu)。
gzip_min_length
語(yǔ)法: gzip_min_length length
默認(rèn)值: gzip_min_length 0
作用域: http, server, location
設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。
默認(rèn)值是0,不管頁(yè)面多大都?jí)嚎s。
建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。 即: gzip_min_length 1024
gzip_http_version
語(yǔ)法: gzip_http_version 1.0|1.1
默認(rèn)值: gzip_http_version 1.1
作用域: http, server, location
識(shí)別http的協(xié)議版本。由于早期的一些瀏覽器或者h(yuǎn)ttp客戶(hù)端,可能不支持gzip自解壓,用戶(hù)就會(huì)看到亂碼,所以做一些判斷還是有必要的。 注:21世紀(jì)都來(lái)了,現(xiàn)在除了類(lèi)似于百度的蜘蛛之類(lèi)的東西不支持自解壓,99.99%的瀏覽器基本上都支持gzip解壓了,所以可以不用設(shè)這個(gè)值,保持系統(tǒng)默認(rèn)即可。
gzip_proxied
語(yǔ)法: 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í)候啟用,開(kāi)啟或者關(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 – 無(wú)條件啟用壓縮
gzip_types
語(yǔ)法: gzip_types mime-type [mime-type ...]
默認(rèn)值: gzip_types text/html
作用域: http, server, location
匹配MIME類(lèi)型進(jìn)行壓縮,(無(wú)論是否指定)”text/html”類(lèi)型總是會(huì)被壓縮的。
注意:如果作為http server來(lái)使用,主配置文件中要包含文件類(lèi)型配置文件
http
{
include conf/mime.types;
……
}
如果你希望壓縮常規(guī)的文件類(lèi)型,可以寫(xiě)成這個(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 text/html application/xml;
……
}
默認(rèn)情況下,Nginx的gzip壓縮是關(guān)閉的
同時(shí),Nginx默認(rèn)只對(duì)text/html進(jìn)行壓縮
所以,開(kāi)啟gzip的指令如下:
gzip on;
gzip_http_version 1.0;
gzip_disable “MSIE [1-6].”;
gzip_types text/plain application/x-javascript text/css text/javascript;
關(guān)于gzip_types,如果你想讓圖片也開(kāi)啟gzip壓縮,那么用以下這段吧:
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png;
注意:
1. 其中的gzip_http_version的設(shè)置,它的默認(rèn)值是1.1,就是說(shuō)對(duì)HTTP/1.1協(xié)議的請(qǐng)求才會(huì)進(jìn)行g(shù)zip壓縮,如果我們使用了proxy_pass進(jìn)行反向代理,那么nginx和后端的upstream server之間是用HTTP/1.0協(xié)議通信的
This module makes it possible to transfer requests to another server.
It is an HTTP/1.0 proxy without the ability for keep-alive requests yet. (As a result, backend connections are created and destroyed on every request.) Nginx talks HTTP/1.1 to the browser and HTTP/1.0 to the backend server. As such it handles keep-alive to the browser.
如果我們使用nginx通過(guò)反向代理做Cache Server,而且前端的nginx沒(méi)有開(kāi)啟gzip,同時(shí),我們后端的nginx上沒(méi)有設(shè)置gzip_http_version為1.0,那么Cache的url將不會(huì)進(jìn)行g(shù)zip壓縮
2. gzip_disable的設(shè)置是禁用IE6的gzip壓縮,又是因?yàn)楸叩腎E6
IE6的某些版本對(duì)gzip的壓縮支持很不好,會(huì)造成頁(yè)面的假死,今天產(chǎn)品的同學(xué)就測(cè)試出了這個(gè)問(wèn)題,后來(lái)調(diào)試后,發(fā)現(xiàn)是對(duì)img進(jìn)行g(shù)zip后造成IE6的假死,把對(duì)img的gzip壓縮去掉后就正常了,為了確保其它的IE6版本不出問(wèn)題,所以就加上了gzip_disable的設(shè)置
- nginx配置gzip壓縮頁(yè)面
- Nginx Gzip模塊啟用和配置指令詳解
- Nginx中的Gzip壓縮配置介紹
- Nginx服務(wù)器中的GZip配置參數(shù)詳解
- Nginx服務(wù)器中使用gzip壓縮的相關(guān)配置解析
- Node.js站點(diǎn)使用Nginx作反向代理時(shí)配置GZip壓縮的教程
- Nginx基礎(chǔ)入門(mén)之gzip配置指南
- 關(guān)于Nginx開(kāi)啟gzip的配置的問(wèn)題
- nginx配置gzip壓縮優(yōu)化傳輸效率加快頁(yè)面訪(fǎng)問(wèn)速度的問(wèn)題
- Nginx配置Gzip的實(shí)現(xiàn)步驟
相關(guān)文章
詳解NGINX如何統(tǒng)計(jì)網(wǎng)站的PV、UV、獨(dú)立IP
做網(wǎng)站的都知道,平常經(jīng)常要查詢(xún)下網(wǎng)站PV、UV等網(wǎng)站的訪(fǎng)問(wèn)數(shù)據(jù),這篇文章主要介紹了詳解NGINX如何統(tǒng)計(jì)網(wǎng)站的PV、UV、獨(dú)立IP ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05基于nginx的靜態(tài)網(wǎng)頁(yè)部署的實(shí)現(xiàn)
這篇文章主要介紹了基于nginx的靜態(tài)網(wǎng)頁(yè)部署的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06阿里云國(guó)際版使用Nginx作為HTTPS轉(zhuǎn)發(fā)代理服務(wù)器的處理方法
本文介紹了使用NGINX作為HTTPS流量轉(zhuǎn)發(fā)代理的兩種方法。它總結(jié)了NGINX使用HTTP?CONNECT隧道和NGINX流充當(dāng)HTTPS轉(zhuǎn)發(fā)代理的解決方案的原則,環(huán)境構(gòu)建要求,應(yīng)用場(chǎng)景和關(guān)鍵問(wèn)題2022-05-05nginx加php-fpm出現(xiàn)502 bad gateway錯(cuò)誤的5種解決方法
這篇文章主要介紹了nginx加php-fpm環(huán)境中出現(xiàn)502 bad gateway錯(cuò)誤的5種解決方法,總結(jié)歸納服務(wù)器出現(xiàn)502錯(cuò)誤的原因多數(shù)為連接過(guò)多和腳本超時(shí),本文總結(jié)了5種解決方法,需要的朋友可以參考下2014-05-05Nginx開(kāi)啟Brotli壓縮算法實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Nginx開(kāi)啟Brotli壓縮算法實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式
這篇文章主要介紹了一個(gè)Nginx實(shí)現(xiàn)部署多個(gè)不同的項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03