nginx 啟用 gzip壓縮

做為如今性能最好一姿,使用最廣泛的web服務(wù)器nginx來(lái)說(shuō)汗盘。本身將具有g(shù)zip壓縮的功能

什么是GZIP

GZIP是若干文件壓縮程序的簡(jiǎn)稱兼耀,通常指GNU計(jì)劃的實(shí)現(xiàn)倦踢,此處的GZIP代表的就是GUN ZIP,這也是HTTP1.1協(xié)議定義的兩種壓縮方法中最常用的一種壓縮方法斋陪,客戶端瀏覽器大都支持這種壓縮格式。

在不設(shè)置服務(wù)器gzip的情況下置吓,我們?cè)L問(wèn)網(wǎng)站 无虚,


image.png

在設(shè)置服務(wù)器gzip之后。訪問(wèn)情況如下


image.png

經(jīng)過(guò)對(duì)比衍锚,我們發(fā)現(xiàn)友题,設(shè)置gzip之后,獲取同樣的數(shù)據(jù)戴质。壓縮之后的數(shù)據(jù)量大概是原始數(shù)據(jù)的1/4度宦。同樣的,獲取數(shù)據(jù)的時(shí)間也大大降低告匠。極大的優(yōu)化了用戶的體驗(yàn)戈抄。

設(shè)置 nginx GZIP

編輯nginx配置文件 nginx.conf 找到如下代碼并更改如下:

    gzip on;  開(kāi)啟壓縮
        gzip_min_length 1k;   設(shè)置壓縮最小單位,小于不壓縮
    #gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    gzip_comp_level 4;  壓縮比
    gzip_buffers 4 16k;  
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;  壓縮內(nèi)容

gzip on|off

默認(rèn)值: gzip off
開(kāi)啟或者關(guān)閉gzip模塊

gzip_static on|off

nginx對(duì)于靜態(tài)文件的處理模塊
該模塊可以讀取預(yù)先壓縮的gz文件后专,這樣可以減少每次請(qǐng)求進(jìn)行g(shù)zip壓縮的CPU資源消耗划鸽。該模塊啟用后,nginx首先檢查是否存在請(qǐng)求靜態(tài)文件的gz結(jié)尾的文件戚哎,如果有則直接返回該gz文件內(nèi)容裸诽。為了要兼容不支持gzip的瀏覽器,啟用gzip_static模塊就必須同時(shí)保留原始靜態(tài)文件和gz文件型凳。這樣的話丈冬,在有大量靜態(tài)文件的情況下,將會(huì)大大增加磁盤空間甘畅。我們可以利用nginx的反向代理功能實(shí)現(xiàn)只保留gz文件埂蕊。

gzip_comp_level 4

默認(rèn)值:1(建議選擇為4)
gzip壓縮比/壓縮級(jí)別实夹,壓縮級(jí)別 1-9,級(jí)別越高壓縮率越大粒梦,當(dāng)然壓縮時(shí)間也就越長(zhǎng)(傳輸快但比較消耗cpu)亮航。

gzip_buffers 4 16k

默認(rèn)值: gzip_buffers 4 4k/8k
設(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_types mime-type [mime-type ...]

默認(rèn)值: gzip_types text/html (默認(rèn)不對(duì)js/css文件進(jìn)行壓縮)
壓縮類型祖灰,匹配MIME類型進(jìn)行壓縮
不能用通配符 text/*
(無(wú)論是否指定)text/html默認(rèn)已經(jīng)壓縮
設(shè)置哪壓縮種文本文件可參考 conf/mime.types

gzip_min_length 1k

默認(rèn)值: 0 钟沛,不管頁(yè)面多大都?jí)嚎s
設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取局扶。
建議設(shè)置成大于1k的字節(jié)數(shù)恨统,小于1k可能會(huì)越壓越大。 即: gzip_min_length 1024

gzip_http_version 1.0|1.1

默認(rèn)值: gzip_http_version 1.1(就是說(shuō)對(duì)HTTP/1.1協(xié)議的請(qǐng)求才會(huì)進(jìn)行g(shù)zip壓縮)
識(shí)別http的協(xié)議版本三妈。由于早期的一些瀏覽器或者h(yuǎn)ttp客戶端畜埋,可能不支持gzip自解壓,用戶就會(huì)看到亂碼畴蒲,所以做一些判斷還是有必要的悠鞍。
注:99.99%的瀏覽器基本上都支持gzip解壓了,所以可以不用設(shè)這個(gè)值,保持系統(tǒng)默認(rèn)即可模燥。
假設(shè)我們使用的是默認(rèn)值1.1咖祭,如果我們使用了proxy_pass進(jìn)行反向代理,那么nginx和后端的upstream server之間是用HTTP/1.0協(xié)議通信的蔫骂,如果我們使用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壓縮

gzip_proxied[off|expired|nocache|nostore|private|no_last_modified|no_etag|auth|any] ...

默認(rèn)值:off
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_vary on

和http頭有關(guān)系握联,加個(gè)vary頭桦沉,給代理服務(wù)器用的每瞒,有的瀏覽器支持壓縮,有的不支持纯露,所以避免浪費(fèi)不支持的也壓縮剿骨,所以根據(jù)客戶端的HTTP頭來(lái)判斷,是否需要壓縮

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末埠褪,一起剝皮案震驚了整個(gè)濱河市浓利,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钞速,老刑警劉巖贷掖,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渴语,居然都是意外死亡苹威,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門驾凶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)牙甫,“玉大人,你說(shuō)我怎么就攤上這事狭郑「古” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵翰萨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我糕殉,道長(zhǎng)亩鬼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任阿蝶,我火速辦了婚禮雳锋,結(jié)果婚禮上羡洁,老公的妹妹穿的比我還像新娘玷过。我一直安慰自己筑煮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布真仲。 她就那樣靜靜地躺著袋马,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秸应。 梳的紋絲不亂的頭發(fā)上碑宴,一...
    開(kāi)封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天桑谍,我揣著相機(jī)與錄音延柠,去河邊找鬼。 笑死锣披,一個(gè)胖子當(dāng)著我的面吹牛贞间,可吹牛的內(nèi)容都是我干的盈罐。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钓葫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼票顾!你這毒婦竟也來(lái)了础浮?” 一聲冷哼從身側(cè)響起奠骄,我...
    開(kāi)封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎影锈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鸭廷,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熔吗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讼载。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片中跌。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖晒他,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情津滞,我是刑警寧澤铝侵,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布触徐,位于F島的核電站,受9級(jí)特大地震影響撞鹉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸟雏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一孝鹊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧又活,春花似錦、人聲如沸柳骄。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)曲初。三九已至鸠踪,卻和暖如春复斥,著一層夾襖步出監(jiān)牢的瞬間械媒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工痢虹, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奖唯。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓糜值,卻偏偏與公主長(zhǎng)得像坯墨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捣染,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容