首頁  >  文章  >  運維  >  怎麼為Nginx啟用Brotli壓縮演算法

怎麼為Nginx啟用Brotli壓縮演算法

王林
王林轉載
2023-05-15 15:52:061296瀏覽

什麼是 brotli 壓縮演算法

brotli最初發佈於2015年,用於網頁字體的離線壓縮。 google軟體工程師在2015年9月發布了包含通用無損資料壓縮的brotli增強版本,特別專注於http壓縮。其中的編碼器被部分改寫以提高壓縮比,編碼器和解碼器都提高了速度,流式api已被改進,增加更多壓縮品質等級。新版本還展現了跨平台的效能改進,以及減少解碼所需的記憶體。

與常見的通用壓縮演算法不同,brotli使用一個預先定義的120千位元組字典。該字典包​​含超過13000個常用單字、短語和其他子字串,這些來自一個文字和html文檔的大型語料庫。預先定義的演算法可以提升較小檔案的壓縮密度。

使用brotli取代deflate來對文字檔案壓縮通常可以增加20%的壓縮密度,而壓縮與解壓縮速度則大致不變。使用brotli進行流壓縮的內容編碼類型已被提議使用“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

例如

#複製程式碼 程式碼如下:

./configure --prefix=/usr/local/nginx --user =www --group=www --with-pcre=/opt/nginx/pcre-8.41 --with-http_ssl_module --with-zlib=/opt/nginx/zlib-1.2.11 --with-openssl=/opt /nginx/openssl-1.0.2n --add-module=/opt/nginx/ngx_brotli --with-http_v2_module

配置,在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 ,發現有

accept-encoding:gzip, deflate, br

如圖所示

怎麼為Nginx啟用Brotli壓縮演算法

即表示開啟了brotli 壓縮

##設定說明

指令介紹

定義如下指令:


brotli,是否允許動態壓縮回應數據,可選值為on和off,預設值為off。樣例如下:


brotli on;

brotli_types,動態壓縮啟用時,允許壓縮的mime types,預設值為text/html。樣例如下:


brotli_types text/plain text/css text/xml application/xml application/json text/javascript application/javascript application/x-javascript;

brotli_static,是否允許查找預處理好的、以.br結尾的壓縮文件,可選值為on、off和always,預設值為off。樣例如下:


brotli_static off;

brotli_comp_level,壓縮級別,可選值範圍為0~11,預設值為6。樣例如下:


brotli_comp_level 11;

brotli_buffers,壓縮回應資料時使用的緩衝區的數量和大小。樣例如下:


brotli_buffers 16 8k;

brotli_window,brotli使用的視窗值,預設值為512k。樣例如下:


brotli_window 512k;

brotli_min_length,回應資料的最小長度,低於該值將不使用brotli演算法執行壓縮操作。 brotli演算法使用content-length來決定回應資​​料的長度。樣例如下:


brotli_min_length 20;

以上是怎麼為Nginx啟用Brotli壓縮演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除