Brotli は、Zopfli よりも 20 ~ 26% 高い圧縮率を実現できる新しいデータ形式です。 Brotli 圧縮アルゴリズムとは何ですか? Brotli はもともと、Web フォントのオフライン圧縮用に 2015 年にリリースされました。 Google のソフトウェア エンジニアは、2015 年 9 月に、特に HTTP 圧縮に重点を置いた一般的なロスレス データ圧縮を含む Brotli の拡張バージョンをリリースしました。エンコーダーは圧縮率を向上させるために部分的に書き直され、エンコーダーとデコーダーの両方が高速化され、ストリーミング API が改良されて圧縮品質レベルが追加されました。新しいバージョンでは、プラットフォーム間でのパフォーマンスの向上と、デコードに必要なメモリの削減も実現されています。 一般的な汎用圧縮アルゴリズムとは異なり、Brotli は事前定義された 120 キロバイトの辞書を使用します。辞書には、テキストと HTML ドキュメントの大規模なコーパスから抽出された 13,000 を超える一般的な単語、フレーズ、およびその他の部分文字列が含まれています。事前定義されたアルゴリズムにより、小さいファイルの圧縮密度を向上させることができます。 テキスト ファイルを圧縮する際に deflate の代わりに brotli を使用すると、圧縮密度が通常 20% 向上しますが、圧縮および解凍の速度はほぼ同じままです。 Brotli を使用したストリーミング圧縮用に、コンテンツ エンコーディング タイプ「br」が提案されています。 インストール 1. brotliをダウンロードする git クローン https://github.com/google/ngx_brotli cd ngx_brotli && git サブモジュール更新 --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 { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; ファイル送信オン; tcp_nopush オン; キープアライブタイムアウト65; #Brotli 圧縮 ブロトリオン; brotli_comp_レベル 6; brotli_types テキスト/プレーン テキスト/css アプリケーション/json アプリケーション/x-javascript テキスト/xml アプリケーション/xml アプリケーション/xml+rss テキスト/javascript アプリケーション/javascript image/svg+xml; … 再起動してページを更新し、ヘッダーを表示すると、 受け入れエンコーディング:gzip、deflate、br 図に示すように これは、brotli 圧縮が有効になっていることを意味します。 設定手順 指導の紹介 ngx_brotli は次のディレクティブを定義します。 brotli では、応答データの動的圧縮を許可するかどうかを指定します。オプションの値は on と off で、デフォルト値は off です。例は以下のとおりです。 ブロトリオン; brotli_types、動的圧縮が有効な場合に圧縮が許可される MIME タイプ、デフォルト値は text/html です。例は以下のとおりです。 brotli_types テキスト/プレーン テキスト/css テキスト/xml アプリケーション/xml アプリケーション/json テキスト/javascript アプリケーション/javascript アプリケーション/x-javascript; brotli_static: .br で終わる前処理済みの圧縮ファイルの検索を許可するかどうか。オプションの値は on、off、always です。デフォルト値は off です。例は以下のとおりです。 brotli_static オフ; brotli_comp_level、圧縮レベル、オプションの値の範囲は 0 ~ 11、デフォルト値は 6 です。例は以下のとおりです。 ブロトリ_comp_レベル11; brotli_buffers、応答データを圧縮するときに使用するバッファの数とサイズ。例は以下のとおりです。 brotli_buffers 16 8k; brotli_window は brotli が使用するウィンドウ値で、デフォルト値は 512k です。例は以下のとおりです。 brotli_window 512k; brotli_min_length、応答データの最小長。長さがこの値より短い場合、圧縮操作を実行するために brotli アルゴリズムは使用されません。 brotli アルゴリズムは、Content-Length を使用して応答データの長さを決定します。例は以下のとおりです。 ブロトリの最小長さ 20; 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装
>>: Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)
私は通常、Tomcatや他のアプリケーションのリバースプロキシとしてnginxを使用しています。実際...
要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....
プロジェクトでは https サービスを使用する必要があるため、Alibaba Cloud では無料...
システムの起動時に読み込む必要がある設定ファイル/etc/profile、/root/.bash_p...
MySQL 論理アーキテクチャの概要他のデータベースと比較すると、MySQL は、そのアーキテクチャ...
効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...
CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...
この記事では主に、HTML+CSS で階層化ピラミッドを実装する例を紹介し、皆さんと共有します。詳細...
この記事では、jQueryブリージングカルーセル制作原理の具体的なプロセスを参考までに紹介します。具...
1. チューニングの必要性 私は、どのように書けばいいのか本当に分からないので、共有するために最適...
目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....
いわゆるカスケード レプリケーションでは、マスター サーバーが 1 つのスレーブ サーバーにのみデー...
この記事では、主に、IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決...
mysql-5.7.17 のインストールについては記事の下部で紹介されているので、参考にしてください...
目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...