Node.js伺服器啟用Gzip壓縮
Gzip是什麼
複製大神們的解釋吧:
GZIP
最早由Jean-loup Gailly
和Mark Adler
建立,用於UNIX
系統的檔案壓縮。我們在Linux中經常會用到字尾為.gz
的檔案,它們就是GZIP
格式的。現今已經成為Internet
上使用非常普遍的一種資料壓縮格式,或者說一種檔案格式。HTTP
協議上的GZIP
編碼是一種用來改進WEB應用程式
效能的技術。大流量的WEB
站點常常使用GZIP
壓縮技術來讓使用者感受更快的速度。這一般是指WWW
伺服器中安裝的一個功能,當有人來訪問這個伺服器中的網站時,伺服器中的這個功能就將網頁內容壓縮後傳輸到來訪的電腦瀏覽器中顯示出來.一般對純文字內容可壓縮到原大小的40%
.這樣傳輸就快了,效果就是你點選網址後會很快的顯示出來.當然這也會增加伺服器的負載. 一般伺服器中都安裝有這個功能模組的.
Gzip壓縮率
舉個例子,通過webpack
打包後的js檔案比較大,雖然我們可以利用chunk
功能將檔案分開混淆打包,但是總體積還是不小;這時候看看利用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響應頭
是有gzip壓縮過:
而圖片的沒有:
這是因為一般對於圖片(png,jpg等)使用
gzip
的效果不好甚至恰得其反,所以一般都預設對圖片不進行gzip
壓縮。
node.js啟用gzip
下面說一下node的express
框架如何使用gzip:
1.安裝一個compression
依賴:
npm install compression
2.呼叫:
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為關閉
gzip on;
#設定允許壓縮的頁面最小位元組數,頁面位元組數從header頭中的Content-Length中進行獲取。預設值是0,不管頁面多大都壓縮。建議設定成大於1k的位元組數,小於1k可能會越壓越大。
gzip_min_length 1k;
#獲取多少記憶體用於快取壓縮結果,‘4 16k’表示以16k*4為單位獲得
gzip_buffers 4 16k;
#gzip壓縮比(1~9),越小壓縮效果越差,但是越大處理越慢,所以一般取中間值
gzip_comp_level 5;
#對特定的MIME型別生效,其中'text/html’被系統強制啟用
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
感謝閱讀!
相關文章
- 如何透過ZBlogPHP啟用Gzip壓縮?PHP
- Apache 開啟gzip壓縮Apache
- 伺服器端如何開啟GZIP壓縮功能伺服器
- nginx指定埠開啟gzip壓縮Nginx
- Vue開啟gzip壓縮檔案Vue
- Apache開啟GZIP壓縮功能方法Apache
- Apache開啟gzip壓縮提高網站速度Apache網站
- nginx快取配置及開啟gzip壓縮Nginx快取
- 如何在Spring Boot應用程式中啟用GZIP壓縮? | 前端後端Spring Boot前端後端
- VuePress 部落格優化之開啟 Gzip 壓縮Vue優化
- vue-cli 啟動gzip壓縮,及後臺配置Vue
- Nginx開啟gzip壓縮大幅提高頁面載入速度Nginx
- 簡單聊聊 GZIP 的壓縮原理與日常應用
- vue-cli3.0配置GZIP壓縮Vue
- 高效能 gzip 壓縮工具 pgzip
- 關gzip壓縮,我有新發現
- 前端效能優化gzip初探(補充gzip壓縮使用演算法brotli壓縮的相關介紹)前端優化演算法
- 探索HTTP傳輸中gzip壓縮的祕密HTTP
- 解析ws訂閱返回的GZIP 壓縮資料
- spark中配置啟用LZO壓縮Spark
- 配置Hadoop中啟用LZO壓縮Hadoop
- c語言,批次處理檔案,進行gzip壓縮C語言
- 解壓縮工具:Bandizip for mac 中文啟用版Mac
- 前端效能最佳化——啟用文字壓縮前端
- 將 Vue.js 專案部署至靜態網站託管,並開啟 Gzip 壓縮Vue.js網站
- 修復損壞的gzip壓縮檔案之原理篇
- 【親媽教學】配置Gzip壓縮,含前後端步驟後端
- Keka for Mac(壓縮解壓工具) 1.3.6中文啟用版Mac
- rar壓縮解壓工具:RAR Extractor - ZIP Unarchiver中文啟用版Hive
- 專案效能優化之用compression-webpack-plugin外掛開啟gzip壓縮,以vue為例優化WebPluginVue
- 從 Gzip 壓縮 SVG 說起 — 論如何減小資原始檔的大小SVG
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- Nginx效能優化功能- Gzip壓縮(大幅度提高頁面載入速度)Nginx優化
- 專業版解壓/壓縮工具:MyZip Pro for Mac v1.2.5免啟用版Mac
- 實用的壓縮解壓工具:WinZip for MacMac
- 用ASP實現線上壓縮與解壓縮功能程式碼
- 檔案壓縮和解壓縮
- 簡單解壓縮工具:OmniZip - Universal Extractor Pro 中文啟用版
- 蘋果Mac壓縮解壓工具:Archiver 4 for Mac v4.0.0註冊啟用版蘋果MacHive