在我的網站部署到服務器的過程當中,爲了提升網站的性能,我使用了nginx反向代理Nodejs服務,其中須要去配置gzip來優化網站的加載。爲了減小網絡傳輸數據量,http傳輸過程當中會採用通用的壓縮算法來壓縮數據,gzip屬於最經常使用的壓縮算法。javascript
使用node的http模塊發送請求時並無幫咱們進行解壓,所以咱們須要手動去判斷gzip。其實只須要在Nodejs中引用一個compress中間件來對gzip進行處理就能夠了,代碼以下:css
var compress = require('compression'); app.use(compress());
另外須要注意的是這個中間件應該放置在全部的中間件最前面以保證全部的返回都是被壓縮的。html
nginx的配置就比較大衆化了,和使用其餘後端語言的時候配置相似,在配置文件的http節點中加入:java
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 5; gzip_types text/plain application/x-javascript text/css application/xml text/javascript;
1) gzipnode
語法:gzip on/offnginx
默認值:off算法
做用域:http, server, location後端
說明:開啓或者關閉 gzip 模塊,這裏使用 on 表示啓動緩存
2) gzip_min_length服務器
語法:gzip_min_length length
默認值:gzip_min_length 0
做用域:http, server, location
說明:設置容許壓縮的頁面最小字節數,頁面字節數從header頭中的Content-Length中進行獲取。默認值是0,無論頁面多大都壓縮。建議設置成大於1k的字節數,小於1k可能會越壓越大。|
3) gzip_buffers
語法: gzip_buffers number size
默認值: gzip_buffers 4 4k/8k
做用域: http, server, location
說明:設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流。4 16k 表明以 16k 爲單位,按照原始數據大小以 16k 爲單位的4倍申請內存。
4) gzip_comp_level
語法: gzip_comp_level 1..9
默認值: gzip_comp_level 1
做用域: http, server, location
說明:gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢(傳輸快但比較消耗cpu)。這裏設置爲 5。
5) gzip_types
語法: gzip_types mime-type [mime-type ...]
默認值: gzip_types text/html
做用域: http, server, location
說明:匹配MIME類型進行壓縮,(不管是否指定)"text/html" 類型老是會被壓縮的。這裏設置爲 application/x-javascript text/css application/xml。