Nginx配置Brotli壓縮

在web應用中,爲了節省流量,下降傳輸數據大小,提升傳輸效率,經常使用的壓縮方式通常都是gzip,今天咱們來介紹另一種更高效的壓縮方式brotli。
  Brotli 是基於LZ77算法的一個現代變體、霍夫曼編碼和二階上下文建模。Google軟件工程師在2015年9月發佈了包含通用無損數據壓縮的Brotli加強版本,特別側重於HTTP壓縮。其中的編碼器被部分改寫以提升壓縮比,編碼器和解碼器都提升了速度,流式API已被改進,增長更多壓縮質量級別。
  與常見的通用壓縮算法不一樣,Brotli使用一個預約義的120千字節字典。該字典包含超過13000個經常使用單詞、短語和其餘子字符串,這些來自一個文本和HTML文檔的大型語料庫。預約義的算法能夠提高較小文件的壓縮密度。
使用Brotli替換Deflate(gzip)來對文本文件壓縮一般能夠增長20%的壓縮密度,而壓縮與解壓縮速度則大體不變。javascript

瀏覽器支持狀況css

  • Mozilla Firefox在Firefox 44中實現Brotli。
  • Google Chrome從Chrome 49開始支持Brotli。
  • Opera從Opera 36開始支持Brotli。

以centos爲例,配置Nginx使其支持brotli壓縮java

一、安裝依賴nginx

> yum groupinstall 'Development Tools'

二、安裝libbrotligit

cd /usr/local/src/
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install

三、安裝ngx_brotligithub

> cd /usr/local/src/
> git clone https://github.com/google/ngx_brotli
> cd ngx_brotli && git submodule update --init

四、下載Nginxweb

> cd /usr/local/src
> wget http://nginx.org/download/nginx-1.10.3.tar.gz
> tar -xvzf nginx-1.10.3.tar.gz

五、編譯安裝算法

> cd /usr/local/src/nginx-1.10.3
> ./configure --add-module=/usr/local/src/ngx_brotli

> make

# 若是是首次安裝Nginx,執行make install;若是是升級,執行make upgrade
> make install

六、查看是否安裝正常chrome

> nginx -V
> nginx -t

七、配置brotli
在nginx.conf文件的http模塊下新增如下內容json

#Brotli Compression
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

八、檢查是否生效
打開網頁,用chrome開發者工具調試,在Network一欄會發現有content-encoding:br,同時網絡耗時也會明顯減小。



歡迎訂閱「K叔區塊鏈」 - 專一於區塊鏈技術學習

博客地址: http://www.jouypub.com
簡書主頁: https://www.jianshu.com/u/756c9c8ae984
segmentfault主頁: https://segmentfault.com/blog/jouypub
騰訊雲主頁: https://cloud.tencent.com/developer/column/72548
相關文章
相關標籤/搜索