brotli 圧縮アルゴリズムとは
brotli は、もともと Web フォントのオフライン圧縮のために 2015 年にリリースされました。 Google ソフトウェア エンジニアは 2015 年 9 月に、http 圧縮に特に重点を置いた一般的な可逆データ圧縮を含む brotli の拡張バージョンをリリースしました。エンコーダは圧縮率を向上させるために部分的に書き直され、エンコーダとデコーダの両方の速度が向上し、ストリーミング API が改善されて圧縮品質レベルが向上しました。新しいバージョンでは、クロスプラットフォームのパフォーマンスが向上し、デコードに必要なメモリが削減されたことも示されています。
一般的な汎用圧縮アルゴリズムとは異なり、brotli は事前定義された 120 キロバイトの辞書を使用します。この辞書には、テキストと HTML ドキュメントの大規模なコーパスから抽出された 13,000 を超える一般的な単語、フレーズ、その他の部分文字列が含まれています。事前定義されたアルゴリズムにより、ファイルが小さい場合の圧縮密度が向上します。
テキスト ファイルの圧縮に deflate の代わりに brotli を使用すると、通常、圧縮速度と解凍速度はほとんど変わりませんが、圧縮密度が 20% 増加します。 Brotli を使用したストリーム圧縮のコンテンツ エンコード タイプには、「br」を使用することが提案されています。
#インストール
#1.ダウンロード brotli
git clone https://github.com/google/ngx_brotli cd ngx_brotli && git submodule update --init
2.コンパイル
追加 - 元のコンパイル設定の後に追加 - 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 { 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; ……
を http セグメントに追加し、再起動します。ページを更新してヘッダーを表示すると、図に示すように
accept-encoding:gzip, deflate, br
が見つかりました。
これは、brotli 圧縮がオンになっているという意味です。
##命令の概要
次の命令が定義されています:
brotli、応答データの動的圧縮を許可するかどうか、オプションの値は on と off で、デフォルト値は off です。例は次のとおりです。
brotli on;
brotli_types、動的圧縮が有効な場合、圧縮された MIME タイプが許可され、デフォルト値は 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 中国語 Web サイトの他の関連記事を参照してください。