為Nginx啟用Brotli壓縮算法的方法示例
Brotli是一種全新的數(shù)據(jù)格式,可以提供比Zopfli高20-26%的壓縮比。
什么是 Brotli 壓縮算法
Brotli最初發(fā)布于2015年,用于網(wǎng)絡(luò)字體的離線壓縮。Google軟件工程師在2015年9月發(fā)布了包含通用無損數(shù)據(jù)壓縮的Brotli增強(qiáng)版本,特別側(cè)重于HTTP壓縮。其中的編碼器被部分改寫以提高壓縮比,編碼器和解碼器都提高了速度,流式API已被改進(jìn),增加更多壓縮質(zhì)量級別。新版本還展現(xiàn)了跨平臺的性能改進(jìn),以及減少解碼所需的內(nèi)存。
與常見的通用壓縮算法不同,Brotli使用一個預(yù)定義的120千字節(jié)字典。該字典包含超過13000個常用單詞、短語和其他子字符串,這些來自一個文本和HTML文檔的大型語料庫。預(yù)定義的算法可以提升較小文件的壓縮密度。
使用brotli替換deflate來對文本文件壓縮通常可以增加20%的壓縮密度,而壓縮與解壓縮速度則大致不變。使用Brotli進(jìn)行流壓縮的內(nèi)容編碼類型已被提議使用“br”。
安裝
1.下載 brotli
git clone https://github.com/google/ngx_brotli cd ngx_brotli && git submodule update --init
2.編譯
在原有的編譯配置后增加 –add-module=/opt/nginx/ngx_brotli
例如
配置,在 http 段加入
http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; keepalive_timeout 65; #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; ……
重啟,刷新頁面查看 header,發(fā)現(xiàn)有
accept-encoding:gzip, deflate, br
如圖所示
即表示開啟了 brotli 壓縮
配置說明
指令介紹
ngx_brotli定義了如下指令:
brotli,是否允許動態(tài)壓縮響應(yīng)數(shù)據(jù),可選值為on和off,默認(rèn)值為off。樣例如下:
brotli on;
brotli_types,動態(tài)壓縮啟用時,允許壓縮的MIME types,默認(rèn)值為text/html。樣例如下:
brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript;
brotli_static,是否允許查找預(yù)處理好的、以.br結(jié)尾的壓縮文件,可選值為on、off和always,默認(rèn)值為off。樣例如下:
brotli_static off;
brotli_comp_level,壓縮級別,可選值范圍為0~11,默認(rèn)值為6。樣例如下:
brotli_comp_level 11;
brotli_buffers,壓縮響應(yīng)數(shù)據(jù)時使用的緩沖區(qū)的數(shù)量和大小。樣例如下:
brotli_buffers 16 8k;
brotli_window,brotli使用的窗口值,默認(rèn)值為512k。樣例如下:
brotli_window 512k;
brotli_min_length,響應(yīng)數(shù)據(jù)的最小長度,低于該值將不使用brotli算法執(zhí)行壓縮操作。brotli算法使用Content-Length來確定響應(yīng)數(shù)據(jù)的長度。樣例如下:
brotli_min_length 20;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Nginx實現(xiàn)反向代理Node.js的方法詳解
這篇文章主要給大家介紹了關(guān)于利用Nginx實現(xiàn)反向代理Node.js的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08Nginx使用limit_req_zone對同一IP訪問進(jìn)行限流的方法
今天小編就為大家分享一篇Nginx使用limit_req_zone對同一IP訪問進(jìn)行限流的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08nginx的keepalive相關(guān)參數(shù)使用源碼解讀
這篇文章主要為大家介紹了nginx的keepalive相關(guān)參數(shù)使用源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12nginx配置ssl實現(xiàn)https訪問的步驟(適合新手)
這篇文章主要給大家介紹了關(guān)于nginx配置ssl實現(xiàn)https訪問的相關(guān)資料,這個教程非常適合新手小白,文中通過示例代碼將實現(xiàn)的方法一步步介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-12-12