gzip壓縮
1. gzip簡介
gzip是nginx服務(wù)器的ngx_http_gzip_module模塊提供的在線實時數(shù)據(jù)壓縮功能。通過開啟gzip功能,可對服務(wù)器響應(yīng)的數(shù)據(jù)進行壓縮處理,變成體積更小的二進制文件。在高PV的網(wǎng)站應(yīng)用中,可以節(jié)省海量的帶寬。
如下圖所示,客戶端瀏覽器發(fā)出的請求頭中聲明了支持gzip類型的壓縮文件,若服務(wù)器端開啟了gzip壓縮功能,那么響應(yīng)數(shù)據(jù)會經(jīng)過壓縮后再返回客戶端,由客戶端負(fù)責(zé)解壓縮再渲染:

http請求頭聲明支持的壓縮類型
2. gzip配置
gzip配置常用參數(shù):
gzip on | off; # 是否開啟gzip
gzip_buffers 32 4K | 16 8K # 緩沖(壓縮數(shù)據(jù)緩沖在內(nèi)存中,當(dāng)達到N塊內(nèi)存,每塊MK時,輸出緩存)
gzip_comp_level [1-9] # 壓縮級別,級別越高,壓縮比越大,越消耗CPU資源,推薦6
gzip_disable # 指定不進行g(shù)zip壓縮的uri
gzip_min_length 200 # 壓縮文件長度超過200的文件
gzip_http_version 1.0 | 1.1 # 指定進行壓縮的最小http協(xié)議版本
gzip_proxied # 如果請求者是代理服務(wù)器,該如何緩存
gzip_types text/plain application/xml # 指定要壓縮的文件的類型
gzip_vary on | off # 是否傳輸gzip壓縮標(biāo)志
在開啟gzip壓縮前,先觀察下我們訪問的頁面響應(yīng)的數(shù)據(jù)長度:

gzip開啟前傳輸?shù)臄?shù)據(jù)長度
接下來開啟gzip:
[root@localhost conf]# vim nginx.conf
# 在http上下文中添加gzip配置
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 200;
gzip_types text/xml text/css application/javascript image/jpeg;
# 保存配置退出,重啟nginx服務(wù)
[root@localhost conf]# ../sbin/nginx -s reload
開啟gzip后,傳輸?shù)臄?shù)據(jù)長度只有原先的1/10大小。

gzip開啟后傳輸?shù)臄?shù)據(jù)長度
3. 注意事項
- 一般情況下,不建議對圖片、mp3等二進制文件配置壓縮,因為二進制文件的壓縮率比較小,但耗費的cpu資源卻很高
- 不對太小的文件進行壓縮