Node.js服務(wù)器啟用Gzip壓縮

Gzip是什么

復制大神們的解釋吧:

GZIP最早由Jean-loup GaillyMark Adler創(chuàng)建隘马,用于UNIX系統(tǒng)的文件壓縮免钻。我們在Linux中經(jīng)常會用到后綴為.gz的文件,它們就是GZIP格式的。現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式蛾绎,或者說一種文件格式。HTTP協(xié)議上的GZIP編碼是一種用來改進WEB應用程序性能的技術(shù)迫淹。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度秘通。這一般是指WWW服務(wù)器中安裝的一個功能,當有人來訪問這個服務(wù)器中的網(wǎng)站時,服務(wù)器中的這個功能就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來.一般對純文本內(nèi)容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網(wǎng)址后會很快的顯示出來.當然這也會增加服務(wù)器的負載. 一般服務(wù)器中都安裝有這個功能模塊的.

Gzip壓縮率

舉個例子,通過webpack打包后的js文件比較大敛熬,雖然我們可以利用chunk功能將文件分開混淆打包,但是總體積還是不械诠伞应民;這時候看看利用gzip壓縮的效果:

啟用Gzip前

啟用Gzip后

對比其中三個文件前后壓縮大小:

文本類文件:

  • iview.min.js: 429kb -> 109kb夕吻,壓縮比74.6%
  • base.min.js: 309kb -> 81.7kb诲锹,壓縮比73.56%
  • style.min.css: 207kb -> 30.9kb,壓縮比85%

圖片:

  • 圖片1: 63.2kb -> 63.2kb涉馅,壓縮比0%归园?
    我們看到文本類文件的壓縮效果非常顯著,但是圖片體積沒變稚矿∮褂眨看一下文本類的http響應頭是有g(shù)zip壓縮過:

image.png

而圖片的沒有:
image.png

這是因為一般對于圖片(png,jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默認對圖片不進行gzip壓縮晤揣。

node.js啟用gzip

下面說一下node的express框架如何使用gzip:
1.安裝一個compression依賴:

npm install compression

2.調(diào)用:

var compression = require('compression')
var app = express();

//盡量在其他中間件前使用compression
app.use(compression());

基本的使用就是這樣就ok了桥爽,另外如果想只對某些請求使用此功能,可以使用它的過濾方法:

app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
  if (req.headers['x-no-compression']) {
    // 這里就過濾掉了請求頭包含'x-no-compression'
    return false
  }

  return compression.filter(req, res)
}

其他的功能請參考compression文檔昧识。

在nginx如何開啟

nginx也支持gzip壓縮钠四。下面為配置方法:

#on為啟用,off為關(guān)閉
gzip on;

#設(shè)置允許壓縮的頁面最小字節(jié)數(shù)跪楞,頁面字節(jié)數(shù)從header頭中的Content-Length中進行獲取缀去。默認值是0,不管頁面多大都壓縮甸祭。建議設(shè)置成大于1k的字節(jié)數(shù)缕碎,小于1k可能會越壓越大。
gzip_min_length 1k;

#獲取多少內(nèi)存用于緩存壓縮結(jié)果淋叶,‘4 16k’表示以16k*4為單位獲得
gzip_buffers 4 16k;

#gzip壓縮比(1~9)阎曹,越小壓縮效果越差伪阶,但是越大處理越慢,所以一般取中間值
gzip_comp_level 5;

#對特定的MIME類型生效,其中'text/html’被系統(tǒng)強制啟用
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

感謝閱讀处嫌!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栅贴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子熏迹,更是在濱河造成了極大的恐慌檐薯,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件注暗,死亡現(xiàn)場離奇詭異坛缕,居然都是意外死亡,警方通過查閱死者的電腦和手機捆昏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門赚楚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骗卜,你說我怎么就攤上這事宠页。” “怎么了寇仓?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵举户,是天一觀的道長。 經(jīng)常有香客問我遍烦,道長俭嘁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任服猪,我火速辦了婚禮供填,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔓姚。我一直安慰自己捕虽,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布坡脐。 她就那樣靜靜地躺著泄私,像睡著了一般。 火紅的嫁衣襯著肌膚如雪备闲。 梳的紋絲不亂的頭發(fā)上晌端,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音恬砂,去河邊找鬼咧纠。 笑死,一個胖子當著我的面吹牛泻骤,可吹牛的內(nèi)容都是我干的漆羔。 我是一名探鬼主播梧奢,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼演痒!你這毒婦竟也來了亲轨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤鸟顺,失蹤者是張志新(化名)和其女友劉穎惦蚊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讯嫂,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蹦锋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欧芽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莉掂。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖渐裸,靈堂內(nèi)的尸體忽然破棺而出巫湘,到底是詐尸還是另有隱情,我是刑警寧澤昏鹃,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站诀诊,受9級特大地震影響洞渤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜属瓣,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一载迄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抡蛙,春花似錦护昧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熊昌,卻和暖如春绽榛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背婿屹。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工灭美, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昂利。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓届腐,卻偏偏與公主長得像铁坎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子犁苏,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理硬萍,服務(wù)發(fā)現(xiàn),斷路器傀顾,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 一襟铭、壓縮算法 1.zip 以下參考他發(fā)明了 zip 壓縮格式,功成名就之際死于墮落壓縮大戰(zhàn)真相 轉(zhuǎn)載自2004.1...
    合肥黑閱讀 5,909評論 0 5
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案短曾? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,761評論 1 92
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,325評論 25 707
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,545評論 1 41