欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Nginx開啟Brotli壓縮算法實現(xiàn)過程詳解

Nginx開啟Brotli壓縮算法實現(xiàn)過程詳解

熱門標(biāo)簽:陜西辦理400電話 信陽電銷外呼系統(tǒng)怎么樣 地圖標(biāo)注小程序 宿州外呼系統(tǒng)公司 海外工廠地圖標(biāo)注 貴陽網(wǎng)絡(luò)外呼系統(tǒng)軟件 株洲電銷 南充電銷外呼系統(tǒng) 南昌外呼系統(tǒng)定制

前言

在web應(yīng)用中,為了節(jié)省流量,降低傳輸數(shù)據(jù)大小,提高傳輸效率,常用的壓縮方式一般都是gzip,今天我們來介紹另外一種更高效的壓縮方式brotli。

Brotli 是基于LZ77算法的一個現(xiàn)代變體、霍夫曼編碼和二階上下文建模。Google軟件工程師在2015年9月發(fā)布了包含通用無損數(shù)據(jù)壓縮的Brotli增強(qiáng)版本,特別側(cè)重于HTTP壓縮。

注意:使用算法的前提是啟用了 https,因為 http 請求中 request header 里的 Accept-Encoding: gzip, deflate 是沒有 br 的。
關(guān)于Brotli 算法詳細(xì)請查看:https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Brotli

瀏覽器對brotli協(xié)議的支持

各種壓縮算法的在不同level下的比較

從圖中可以看出brotli vs gzip 的壓縮算法 總體來說brotli的總體性能更好,尤其是解壓速度。我們在選擇brotli算法或gzip時,需要根據(jù)實際場景進(jìn)行調(diào)優(yōu)

下載Brotli

google/ngx_brotli 從 16年12月的版本起,開始內(nèi)置google/brotli,所以我們不需要額外編譯bagder/libbrotli庫,讓安裝變得簡單起來。 我們將google/ngx_brotli下載并解壓到/usr/src/ngx_brotli目錄

cd /usr/src

git clone https://github.com/google/ngx_brotli.git

然后在下載google/brotli并解壓到/usr/src/ngx_brotli/deps/brotli

cd /usr/src/ngx_brotli/deps && rm -rf brotli
git clone git@github.com:google/brotli.git
cd /usr/src/ngx_brotli && git submodule update --init

編譯Brotli

nginx自1.9.11以后版本后支持動態(tài)模塊,自此,給nginx添加模塊再也不用重新編譯nginx了,通過動態(tài)模塊,你可以在運(yùn)行時有有選擇性的加載第三方或Nginx官方模塊。新的實現(xiàn)方式通過API模塊保持盡可能的向后兼容。

下載解壓nginx安裝包

請下載與當(dāng)前nginx版本相同的nginx安裝包。nginx官方下載地址:http://nginx.org/en/download.html。 這里假設(shè)當(dāng)前服務(wù)器nginx是1.14.2版本。

可通過命令,獲取當(dāng)前nginx版本

nginx -v

輸出

nginx version: nginx/1.14.2

下載nginx安裝包

cd /usr/src
wget http://59.80.44.46/nginx.org/download/nginx-1.14.2.tar.gz

解壓安裝包

tar -xvf nginx-1.14.2.tar.gz

編譯動態(tài)模塊

先進(jìn)入解壓后的nginx安裝包目錄,配置configure,然后用make modules。

cd nginx-1.14.2
./configure --with-compat --add-dynamic-module=/usr/src/ngx_brotli
make modules

參數(shù)語法:--add-dynamic-module=[模塊源碼所在目錄的絕對路徑]

等運(yùn)行完成后,查看編譯好的模塊

ls objs/*.so

輸出:

objs/ngx_http_brotli_filter_module.so objs/ngx_http_brotli_static_module.so

將編譯好的模塊文件復(fù)制到nginx動態(tài)模塊加載目錄

cp objs/{ngx_http_brotli_filter_module.so,ngx_http_brotli_static_module.so} /etc/nginx/modules

注冊Brotli模塊

為了方便管理nginx動態(tài)模塊,建議新建一個modules.conf文件,單獨(dú)管理動態(tài)模塊。

touch /etc/nginx/modules.conf

在/etc/nginx/nginx.conf配置文件里引入modules.conf文件,找到以下內(nèi)容并修改:

pid /var/run/nginx.pid;

include /etc/nginx/modules.conf;

打開/etc/nginx/modules.conf,注冊剛才編譯好的 Brotli 模塊。

# Brotli模塊
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

啟用Brotli壓縮

Brotli和gzip是可以并存的,無需關(guān)閉gzip。

在/etc/nginx/nginx.conf開啟Brotli:

http {
  ...
  # gzip
  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 32k;
  gzip_http_version 1.1;
  gzip_comp_level 5;
  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
  gzip_vary on;
  gzip_proxied any;
  gzip_disable "MSIE [1-6]\.";

  # brotli
  brotli on;
  brotli_comp_level 6;
  brotli_buffers 16 8k;
  brotli_min_length 20;
  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;
  ...
}

gzip與brotli的配置詳情

gzip調(diào)優(yōu)
使用gzip壓縮功能,可能為我們節(jié)約帶寬,加快傳輸速度,有更好的體驗,也為我們節(jié)約成本,所以說這是一個重點。 關(guān)于gzip詳細(xì)介紹可點擊這里;

gzip on 開啟gzip壓縮功能。

gzip_min_length 1k

設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭的Content-Length中獲取,默認(rèn)值是 0 ,不管頁面多大都進(jìn)行壓縮,建議設(shè)置成大于 1K ,如果小與1K可能會越壓越大。

gzip_buffers

壓縮緩沖區(qū)大小,表示申請4個單位為32K的內(nèi)存作為壓縮結(jié)果流緩存,默認(rèn)值是申請與原始數(shù)據(jù)大小相同的內(nèi)存空間來存儲gzip壓縮結(jié)果。

gzip_http_version 1.1

壓縮版本,用于設(shè)置識別HTTP協(xié)議版本,默認(rèn)是 1.1 ,目前大部分瀏覽器已經(jīng)支持GZIP解壓,使用默認(rèn)即可。

gzip_comp_level 5

壓縮比例,用來指定gzip壓縮比,1壓縮比最小,處理速度最快,9壓縮比最大,傳輸速度快,但是處理慢,也比較消耗CPU資源。推薦設(shè)置為 5 。

gzip_types

用來指定壓縮的類型,text/html類型總是會被壓縮。

gzip_vary on

和http頭有關(guān)系,加個vary頭,給代理服務(wù)器用的,有的瀏覽器支持壓縮,有的不支持,所以避免浪費(fèi)不支持的也壓縮,所以根據(jù)客戶端的HTTP頭來判斷,是否需要壓縮。

gzip_proxied any

nginx作為反向代理的時候啟用,開啟或者關(guān)閉后端服務(wù)器返回的結(jié)果,匹配的前提是后端服務(wù)器必須要返回包含Via的header頭。默認(rèn)是 off 。 可選參數(shù)值:

  • off 關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮
  • expired 啟用壓縮,如果header頭中包含 Expires 頭信息
  • no-cache 啟用壓縮,如果header頭中包含 Cache-Control:no-cache 頭信息
  • no-store 啟用壓縮,如果header頭中包含 Cache-Control:no-store 頭信息
  • private 啟用壓縮,如果header頭中包含 Cache-Control:private 頭信息
  • no_last_modified 啟用壓縮,如果header頭中不包含 Last-Modified 頭信息
  • no_etag 啟用壓縮 ,如果header頭中不包含 ETag 頭信息
  • auth 啟用壓縮 , 如果header頭中包含 Authorization 頭信息
  • any 無條件啟用壓縮

gzip_disable

禁用IE6的gzip壓縮。 IE6對gzip的壓縮支持很不好,會造成頁面的假死。為了避免IE6出現(xiàn)問題,建議加上這個參數(shù)。

brotli調(diào)優(yōu)

Google 認(rèn)為互聯(lián)網(wǎng)用戶的時間是寶貴的,他們的時間不應(yīng)該消耗在漫長的網(wǎng)頁加載中,因此在 2015 年 9 月 Google 推出了無損壓縮算法 Brotli。Brotli 通過變種的 LZ77 算法、Huffman 編碼以及二階文本建模等方式進(jìn)行數(shù)據(jù)壓縮,與其他壓縮算法相比,它有著更高的壓塑壓縮效率。 關(guān)于brotli詳細(xì)介紹可點擊這里;

注:如果未安裝brotli模塊,此部分配置項無需配置,可略過。

brotli on

開啟brotli壓縮功能。

brotli_comp_level 6

壓縮比例,用來指定brotli壓縮比,1 壓縮比最小,處理速度最快,11 壓縮比最大,傳輸速度快,但是處理慢,也比較消耗CPU資源。默認(rèn)值為 6 ,使用默認(rèn)值即可。

brotli_buffers 16 8k

設(shè)置用于壓縮響應(yīng)的緩沖區(qū)number和size。默認(rèn)情況下,緩沖區(qū)大小等于一個內(nèi)存頁面。 默認(rèn)值:32 4k|16 8k。

brotli_min_length 20

設(shè)置length要壓縮的響應(yīng)的最小值,長度僅由Content-Length響應(yīng)頭字段確定。默認(rèn)為 20 。

brotli_types

用來指定壓縮的類型,text/html類型總是會被壓縮。

gzip與brotli的配置詳情在反向代理配置文件代碼中添加:

proxy_set_header Accept-Encoding "";

范例:

server {
  ...
  location / {
    ...
    proxy_set_header Accept-Encoding "";
    ...
  }
  ...
}

重啟nginx,使其配置生效

systemctl restart nginx

Brotli 壓縮只能在https中生效,因為 在 http 請求中 request header 里的 Accept-Encoding: gzip, deflate 是沒有 br 的。
清理臨時文件

要養(yǎng)成好習(xí)慣,每次編譯完后都要把應(yīng)用包解壓出來的文件或目錄進(jìn)行刪除。

rm -rf /usr/src/{nginx-1.14.2/,ngx_brotli/}

最后檢查是否生效

打開網(wǎng)頁,用chrome開發(fā)者工具調(diào)試,在Network一欄會發(fā)現(xiàn)有content-encoding:br,同時網(wǎng)絡(luò)耗時也會明顯減少。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:晉城 開封 鄭州 玉林 三明 汕頭 拉薩 石嘴山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx開啟Brotli壓縮算法實現(xiàn)過程詳解》,本文關(guān)鍵詞  Nginx,開啟,Brotli,壓縮,算法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx開啟Brotli壓縮算法實現(xiàn)過程詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Nginx開啟Brotli壓縮算法實現(xiàn)過程詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    91精品国产乱码| 久久亚洲捆绑美女| 亚洲色图欧美在线| 国产麻豆9l精品三级站| 五月婷婷综合在线观看| 91麻豆精品国产91久久久| 亚洲国产日韩一区二区| 97成人超碰视| 在线视频国内自拍亚洲视频| 亚洲日本在线a| 99久久伊人精品| 91国模大尺度私拍在线视频| 亚洲青青青在线视频| caoporen国产精品视频| 91成人免费在线视频| 亚洲免费成人av| www日本在线观看| 欧美日韩一区二区三区不卡 | 日韩一区二区三区免费观看| 99国产精品一区| 欧美一区二区三区粗大| 99久精品国产| 少妇人妻丰满做爰xxx| 国产精品素人一区二区| 成人av网在线| 欧美在线观看你懂的| 亚洲午夜精品久久久久久久久| 日本精品一二三区| 欧美一卡二卡在线观看| 老司机一区二区| 国产精品夜夜夜爽阿娇| **欧美大码日韩| 久草福利在线观看| 欧美一区二区免费| 黄色日韩网站视频| 污软件在线观看| 亚洲激情在线激情| 第四色在线视频| 久久综合九色综合久久久精品综合| 韩国欧美国产1区| 91人妻一区二区三区蜜臀| 亚洲欧美日韩成人高清在线一区| 91精品人妻一区二区三区蜜桃2 | 国产精品亚洲一区二区无码| 欧美精品在线观看一区二区| 蜜桃一区二区三区四区| а天堂中文在线资源| 亚洲欧美日韩久久精品| 欧美肉大捧一进一出免费视频| 精品国产a毛片| 成人一区二区视频| 欧美群妇大交群中文字幕| 久久www免费人成看片高清| 一区二区国产精品精华液| 亚洲夂夂婷婷色拍ww47| 亚洲综合网在线观看| 亚洲欧洲色图综合| 最近中文字幕无免费| 中文在线一区二区| 五月天激情小说| 欧美国产视频在线| 免费观看污网站| 久久嫩草精品久久久精品| av爱爱亚洲一区| 日韩精品最新网址| 久久免费国产精品| 97久久精品人人做人人爽50路| 欧美一区二区三区人| 国产a精品视频| 欧美一区三区四区| 成人动漫一区二区三区| 欧美一区二区在线免费播放| 国产v日产∨综合v精品视频| 欧美一级在线免费| av中文一区二区三区| 精品久久国产97色综合| voyeur盗摄精品| 久久综合色8888| avtt中文字幕| 中文字幕第一页久久| av2014天堂网| 亚洲欧美日韩一区二区三区在线观看| 成人性生交大免费看| 一区二区三区四区蜜桃 | 久久久噜噜噜久噜久久综合| 色诱av手机版| 国产精品素人视频| 美女100%无挡| 亚洲成人自拍一区| 色综合久久久久网| 韩国精品在线观看| 91精品国产手机| 99久久精品国产观看| 久久久蜜桃精品| 久久无码人妻精品一区二区三区 | 亚洲国产精品成人综合 | 日韩久久精品一区| 中文字幕制服丝袜| 最新国产の精品合集bt伙计| 精品国产aaa| 男男视频亚洲欧美| 欧美群妇大交群中文字幕| 97se亚洲国产综合自在线不卡| 国产亚洲va综合人人澡精品| 黄色国产在线观看| 亚洲成人动漫在线免费观看| 日本二三区不卡| 成人精品视频网站| 国产欧美日韩三级| 成熟人妻av无码专区| 精品在线亚洲视频| 欧美成人国产一区二区| 日韩综合第一页| 亚洲国产va精品久久久不卡综合| 色噜噜狠狠色综合中国| 成人永久aaa| 中文字幕一区二| 欧美日韩午夜视频| 高清视频一区二区| 国产精品天天看| 国精产品视频一二二区| 韩国v欧美v亚洲v日本v| 久久尤物电影视频在线观看| 亚洲永久精品ww.7491进入| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美一级二级在线观看| 国产精品无码电影| 午夜国产不卡在线观看视频| 成人国产精品免费网站| 一区在线观看免费| 色一区在线观看| 91亚洲精品乱码久久久久久蜜桃| 亚洲欧美日本韩国| 欧美日韩一区高清| 性色av蜜臀av浪潮av老女人| 亚洲成a人v欧美综合天堂| 欧美日韩国产综合久久| 性感美女一区二区三区| 丝袜亚洲精品中文字幕一区| 91精品国产丝袜白色高跟鞋| 中文字幕国产综合| 韩国视频一区二区| 国产精品久久影院| 色老汉av一区二区三区| 性色av浪潮av| 蜜臀av午夜精品久久| 欧美日韩精品一区二区| 韩国女主播成人在线| 久久影院视频免费| 欧美日韩色视频| 久久久精品免费免费| 3d成人h动漫网站入口| 欧洲一区二区av| 欧美成人精品一区二区综合免费| 日韩高清不卡一区二区| 精品欧美一区二区久久| 色一情一交一乱一区二区三区| 国产在线视视频有精品| 中文字幕一区在线| 欧美三级日韩三级国产三级| 国产成人精品无码片区在线| 久久91精品久久久久久秒播| 欧美国产成人精品| 欧美在线观看视频在线| 性欧美成人播放77777| 国产一区二区在线电影| 国产精品免费aⅴ片在线观看| 在线观看区一区二| 亚洲欧美精品午睡沙发| 亚洲国产精品二十页| 国产999精品久久久久久绿帽| 亚洲欧美日韩久久| 欧美一区二区三区在线观看| 国产在线免费av| 91麻豆福利精品推荐| 青青草成人在线观看| 中文字幕免费不卡在线| 欧美天堂一区二区三区| 久久久久久久久久久久| 成人午夜激情在线| 五月天精品一区二区三区| 2020国产精品自拍| 91福利精品第一导航| 亚洲一区二区三区蜜桃| 成人精品小蝌蚪| 日韩不卡免费视频| 国产精品久久久久久久裸模| 欧美嫩在线观看| 在线视频这里只有精品| 91传媒理伦片在线观看| 国产老肥熟一区二区三区| 亚洲一区在线视频观看| 久久久精品欧美丰满| 欧美日韩电影在线| 麻豆成人免费电影| 99久久精品国产一区| 天天做天天摸天天爽国产一区 | 欧美日韩精品一区二区三区| 亚洲精品视频网址| 国产精品福利电影一区二区三区四区 |