Brotli是Google推出的開源壓縮算法,通過變種的LZ77算法、Huffman編碼以及二階文本建模等方式進(jìn)行數(shù)據(jù)壓縮,與其他壓縮算法相比,它有著更高的壓縮效率,性能也比我們目前常見的Gzip高17-25%,當(dāng) Brotli 壓縮級(jí)別為 1 時(shí),壓縮率比 Gzip 壓縮等級(jí)為 9(最高)時(shí)還要高。
曾經(jīng),LinkedIn做了一個(gè)性能測(cè)試結(jié)果,實(shí)際效果,Brotli還是很不錯(cuò)的:
Nginx安裝并開啟Brotli壓縮,以寶塔為例,其他nginx基本上大同小異:
下載brotli
cd /www/server
#下載brotli
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
#更新brotli
git submodule update --init
重新編譯Nginx
1、編輯nginx安裝腳本,路徑/www/server/panel/install/nginx.sh,找到Install_Configure(){...}或Install_Nginx(){...}字段,然后找出你要安裝的nginx版本號(hào),在下面一行的./configure --user=www ...后面添加--add-module=/www/server/ngx_brotli 即可,記得之間間隔一個(gè)英文空格。
2、在ssh客戶端使用命令開始編譯,根據(jù)自己的版本,將后面數(shù)字改為1.10、1.12、1.14、1.15、1.17、1.8 等
sh /www/server/panel/install/nginx.sh install 1.16
3、安裝好了使用nginx -V查看是否含有模塊即可。
開啟Brotli壓縮
在配置文件http段內(nèi)添加以下內(nèi)容來啟用Brotli壓縮
brotli on;
brotli_comp_level 6;
brotli_min_length 512;
brotli_types text/plain text/javascript text/css text/xml text/x-component application/javascript application/x-javascript application/xml application/json application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype;
brotli_static always;
然后重新reload下,即可生效。全部配置好了,谷歌調(diào)試者看下就好了??吹絙r字段即為成功。
注意:
默認(rèn)情況下,Brotli和Gzip是可以共存的,并且都啟用了。部分老舊的IE瀏覽器不支持Brotli的時(shí)候會(huì)自動(dòng)變成Gzip壓縮。