成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

把Gzip換成Brotli的Nginx配置教程

lieeps / 940人閱讀

摘要:軟件工程師在年月發(fā)布了包含通用無損數(shù)據(jù)壓縮的增強版本,特別側(cè)重于壓縮。與常見的通用壓縮算法不同,使用一個預(yù)定義的千字節(jié)字典。另外,把換成,真的可以感受到速度明顯提升了。。。

內(nèi)容協(xié)商

在介紹 Brotli 之前,先說一下 HTTP 內(nèi)容協(xié)商

有時候,同一個 URL 可以提供多份不同的文檔,這就要求服務(wù)端和客戶端之間有一個選擇最合適版本的機制,這就是內(nèi)容協(xié)商

HTTP 的內(nèi)容協(xié)商的其中一種方式:服務(wù)端根據(jù)客戶端發(fā)送的請求頭中某些字段自動發(fā)送最合適的版本??梢杂糜谶@個機制的請求頭字段又分兩種:內(nèi)容協(xié)商專用字段(Accept 字段)、其他字段

字段情況,詳見下表:

請求頭字段 說明 響應(yīng)頭字段
Accept 告知服務(wù)器發(fā)送何種媒體類型 Content-Type
Accept-Language 告知服務(wù)器發(fā)送何種語言 Content-Language
Accept-Charset 告知服務(wù)器發(fā)送何種字符集 Content-Type
Accept-Encoding 告知服務(wù)器采用何種壓縮方式 Content-Encoding

例如客戶端發(fā)送以下請求頭:

Accept-Encoding:gzip,deflate,br

表示支持采用 gzip、deflate 或 br 壓縮過的資源

瀏覽器的響應(yīng)頭可能是這樣的:

Content-Encoding: gzip

詳情可參考:Here

什么是 Brotli

從上面的內(nèi)容了解到,我們控制使用壓縮的資源,除了有Gzip外,還有br,而這個br就是我這里要說的 Brotli

Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

Brotli 是基于LZ77算法的一個現(xiàn)代變體、霍夫曼編碼和二階上下文建模。Google軟件工程師在2015年9月發(fā)布了包含通用無損數(shù)據(jù)壓縮的Brotli增強版本,特別側(cè)重于HTTP壓縮。其中的編碼器被部分改寫以提高壓縮比,編碼器和解碼器都提高了速度,流式API已被改進,增加更多壓縮質(zhì)量級別。

與常見的通用壓縮算法不同,Brotli使用一個預(yù)定義的120千字節(jié)字典。該字典包含超過13000個常用單詞、短語和其他子字符串,這些來自一個文本和HTML文檔的大型語料庫。預(yù)定義的算法可以提升較小文件的壓縮密度。

使用Brotli替換Deflate來對文本文件壓縮通??梢栽黾?0%的壓縮密度,而壓縮與解壓縮速度則大致不變。

瀏覽器支持情況

Mozilla Firefox在Firefox 44中實現(xiàn)Brotli。

Google Chrome從Chrome 49開始支持Brotli。

Opera從Opera 36開始支持Brotli。

安裝與配置過程

安裝需要用到開發(fā)工具

CentOS,如下

yum groupinstall "Development Tools"

Ubuntu,如下

sudo apt-get install autoconf libtool automake

這次的教程實踐環(huán)境是CentOS 7,已經(jīng)在linpx.com上實現(xiàn)了

下面開始正式的教程

安裝libbrotli

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

安裝ngx_brotli

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

下載Nginx

這里使用 nginx-1.10.3

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

獲取Nginx Arguments

nginx -V

整理新的Arguments

根據(jù)獲取到的configure arguments和上面軟件的位置,重新整理configure arguments

然后再加上 --add-module=/usr/local/src/ngx_brotli

開始安裝和編譯

cd /usr/local/src/nginx-1.10.3
./configure [這里是你的原Arguments] --add-module=/usr/local/src/ngx_brotli
make && make install

檢查是否安裝正常

nginx -V
nginx -t

找到Nginx的全局配置文件

如果檢測安裝正常的話,可以開始配置,該配置文件一般為 nginx.conf

在合適的位置插入下面代碼

#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;

再次檢測是否正常

nginx -t

重啟Nginx

如果正常的話,恭喜你,你已經(jīng)配置完成了,重啟一下Nginx即可

CentOS 6.x:

service nginx restart

CentOS 7.x:

systemctl restart nginx

檢查是否生效

打開你的網(wǎng)頁,用chrome開發(fā)者工具調(diào)試,在Network那,發(fā)現(xiàn)有content-encoding:br

可能的報錯

如果在測試或者重載時, Nginx 報錯如下:

nginx: error while loading shared libraries: libbrotlienc.so.1: cannot open shared object file: No such file or directory

解決方法是把對應(yīng)的庫文件在 /lib(64) 或者 /usr/lib(64) 中做上軟鏈接:

# 64 位系統(tǒng)
$ ln -s /usr/local/lib/libbrotlienc.so.1 /lib64

# 32 位系統(tǒng)
$ ln -s /usr/local/lib/libbrotlienc.so.1 /lib
結(jié)論

一周前就已經(jīng)完成配置和實踐,拖到今天才寫完。。。

另外,把Gzip換成br,真的可以感受到速度明顯提升了。。。

內(nèi)容較多,大概就這樣。。。

對了,文章首發(fā)于 www.linpx.com,歡迎大家多多訪問我的博客,謝謝

參考

imququ.com/post/my-nginx-conf.html

wangqiliang.com/qi-yong-brotli-ya-suo-suan-fa-ti-gao-xing-neng/

zh.wikipedia.org/wiki/Brotli

hacks.mozilla.org/2015/11/better-than-gzip-compression-with-brotli/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39552.html

相關(guān)文章

  • 11 個 Nginx 參數(shù)性能優(yōu)化工作

    摘要:配置如下指令是設(shè)定的工作模式及連接數(shù)上限。指令用來指定的工作模式。該參數(shù)默認是,建議開啟。配置進程的最大打開文件數(shù)調(diào)整配置進程的最大打開文件數(shù),這個控制連接數(shù)的參數(shù)為。但副作用是資源更新可能無法及時。 工作上,需要配置 Nginx,要投入生產(chǎn)使用,做了一點優(yōu)化工作,加上以前也經(jīng)常折騰 Nginx,故記下一些優(yōu)化工作。 優(yōu)化 Nginx 進程數(shù)量 配置參數(shù)如下: worker_proce...

    zebrayoung 評論0 收藏0
  • Nginx配置Brotli壓縮

    摘要:軟件工程師在年月發(fā)布了包含通用無損數(shù)據(jù)壓縮的增強版本,特別側(cè)重于壓縮。與常見的通用壓縮算法不同,使用一個預(yù)定義的千字節(jié)字典。 在web應(yīng)用中,為了節(jié)省流量,降低傳輸數(shù)據(jù)大小,提高傳輸效率,常用的壓縮方式一般都是gzip,今天我們來介紹另外一種更高效的壓縮方式brotli。??Brotli 是基于LZ77算法的一個現(xiàn)代變體、霍夫曼編碼和二階上下文建模。Google軟件工程師在2015年9...

    YacaToy 評論0 收藏0
  • SiteGround虛擬主機支持Brotli壓縮技術(shù) 網(wǎng)站速度提高15-20%

    摘要:怎么樣,好不好,應(yīng)該成為您的虛擬主機選擇嗎虛擬主機支持壓縮算法并在在服務(wù)器上部署并啟用,托管在虛擬主機上的網(wǎng)站訪問速度會提高左右。虛擬主機是官方推薦的主機,與是絕佳搭配。虛擬主機上面的網(wǎng)站速度穩(wěn)定性都很棒,在國外測試網(wǎng)站評測很高。SiteGround怎么樣,SiteGround好不好,SiteGround應(yīng)該成為您的虛擬主機選擇嗎?SiteGround虛擬主機支持Brotli壓縮算法并在在服...

    hellowoody 評論0 收藏0
  • 前端每周清單第 12 期:支付寶前端構(gòu)建工具發(fā)展、LinkedIn用Brotli加快網(wǎng)頁響應(yīng)速度、餓

    摘要:前端每周清單第期支付寶前端構(gòu)建工具發(fā)展用加快網(wǎng)頁響應(yīng)速度餓了么升級實踐前端前端每周清單前端每周清單專注前端領(lǐng)域內(nèi)容,分為新聞熱點開發(fā)教程工程實踐深度閱讀開源項目巔峰人生等欄目。 前端每周清單第 12 期:支付寶前端構(gòu)建工具發(fā)展、LinkedIn用Brotli加快網(wǎng)頁響應(yīng)速度、餓了么PWA 升級實踐 為InfoQ中文站特供稿件,首發(fā)地址為這里;如需轉(zhuǎn)載,請與InfoQ中文站聯(lián)系。從屬于筆...

    liuchengxu 評論0 收藏0
  • 啟用 Brotli 壓縮算法,對比 Gzip 壓縮 CDN 流量再減少 20%

    摘要:目前又拍云已支持壓縮算法,通過對新壓縮算法的支持將壓縮率提升,并且?guī)椭档鸵苿釉O(shè)備的電池使用量,并達到省電延長電池使用壽命的目的。當(dāng)客戶端同時支持兩種算法時,又拍云會優(yōu)先響應(yīng)版本文件。 Google 認為互聯(lián)網(wǎng)用戶的時間是寶貴的,他們的時間不應(yīng)該消耗在漫長的網(wǎng)頁加載中,因此在 2015 年 9 月 Google 推出了無損壓縮算法 Brotli。Brotli 通過變種的 LZ77 算法...

    番茄西紅柿 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<