服務項目:網(wǎng)站建設、仿站、程序開發(fā)、APP開發(fā)設計、移動網(wǎng)站開發(fā)設計、企業(yè)網(wǎng)站設計、電子商務網(wǎng)站開發(fā)、網(wǎng)站維護、網(wǎng)站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
四川???萍加邢薰?></a></div>
                    <div   id=四川???萍加邢薰? title=
四川???萍加邢薰?(開發(fā)設計官網(wǎng))TEL : 15308000360 / QQ : 38585404

您的位置:首頁 > 技術(shù)經(jīng)驗 > 服務器 > 正文

nginx下gzip配置參數(shù)詳解
技術(shù)支持服務電話:15308000360 【7x24提供運維服務,解決各類系統(tǒng)/軟硬件疑難技術(shù)問題】

Nginx自帶的有g(shù)zip模塊 http://wiki.nginx.org/NginxChsHttpGzipModule ,這個模塊支持在線實時壓縮輸出數(shù)據(jù)流。經(jīng)過良好的配置優(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

語法: 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
設置系統(tǒng)獲取幾個單位的緩存用于存儲gzip的壓縮結(jié)果數(shù)據(jù)流。 例如 4 4k 代表以4k為單位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請內(nèi)存。 4 8k 代表以8k為單位,按照原始數(shù)據(jù)大小以8k為單位的4倍申請內(nèi)存。

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

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
設置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進行獲取。
默認值是0,不管頁面多大都壓縮。
建議設置成大于1k的字節(jié)數(shù),小于1k可能會越壓越大。 即: gzip_min_length 1024

gzip_http_version

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

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作為反向代理的時候啟用,開啟或者關閉后端服務器返回的結(jié)果,匹配的前提是后端服務器必須要返回包含”Via”的 header頭。

off – 關閉所有的代理結(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 ...]
默認值: gzip_types text/html
作用域: http, server, location
匹配MIME類型進行壓縮,(無論是否指定)”text/html”類型總是會被壓縮的。
注意:如果作為http server來使用,主配置文件中要包含文件類型配置文件

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

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

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;

……
}
默認情況下,Nginx的gzip壓縮是關閉的 同時,Nginx默認只對text/html進行壓縮 所以,開啟gzip的指令如下:
gzip on;
gzip_http_version 1.0;
gzip_disable “MSIE [1-6].”;
gzip_types text/plain application/x-javascript text/css text/javascript;
關于gzip_types,如果你想讓圖片也開啟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的設置,它的默認值是1.1,就是說對HTTP/1.1協(xié)議的請求才會進行g(shù)zip壓縮,如果我們使用了proxy_pass進行反向代理,那么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通過反向代理做Cache Server,而且前端的nginx沒有開啟gzip,同時,我們后端的nginx上沒有設置gzip_http_version為1.0,那么Cache的url將不會進行g(shù)zip壓縮。

2. gzip_disable的設置是禁用IE6的gzip壓縮,又是因為杯具的IE6 IE6的某些版本對gzip的壓縮支持很不好,會造成頁面的假死,今天產(chǎn)品的同學就測試出了這個問題,后來調(diào)試后,發(fā)現(xiàn)是對img進行g(shù)zip后造成IE6的假死,把對img的gzip壓縮去掉后就正常了,為了確保其它的IE6版本不出問題,所以就加上了gzip_disable的設置



上一篇:在IIS服務器上屏蔽特定IP的訪問 IIS拒絕指定IP訪問
下一篇:nginx安裝第三方模塊的方法

相關熱詞搜索:nginx gzip