banner
moeyy

moeyy

一条有远大理想的咸鱼。
github
mastodon
email

宝塔パネルLNMPはBrotli圧縮を有効にし、ウェブサイトの読み込み速度を向上させることができます。

説明:Brotliは、Googleが開発したオープンソースの圧縮アルゴリズムで、変種のLZ77アルゴリズム、Huffman符号化、2 次のテキストモデリングなどを使用してデータを圧縮します。他の圧縮アルゴリズムと比較して、より高い圧縮効率とパフォーマンスを持ち、現在一般的なGzipよりも 17-25% 高速です。これにより、ウェブページのさまざまなファイルサイズやスクリプトの効率的な圧縮が可能になり、読み込み速度が向上し、ウェブページの閲覧体験が向上します。私も現在Brotli圧縮を有効にしており、まあまあの体験です。ここでは、宝塔パネルの有効化方法について説明します。

インストール#

1. Brotli のダウンロード

cd /www/server
# Brotliのダウンロード
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
# Brotliの更新
git submodule update --init

2. Nginx のコンパイル

注意:手動でのコンパイルはNginx 1.15でのみテストされており、一部のバージョンではモジュールが不足しているというエラーが表示される場合があります。後述する宝塔スクリプトを使用することをおすすめします。

現在のNginxのバージョン情報を確認します。次のコマンドを使用します。

nginx -V

以下のような情報が表示されます。

[root@rats ~]# nginx -V
nginx version: nginx/1.15.10
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.1.1b  26 Feb 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl ... --with-ld-opt=-ljemalloc

nginxのバージョンは1.15.10であり、configure arguments:の後にはnginxのコンパイルパラメータが表示されます。後で使用します。

次に、nginxを再度ダウンロードし、コンパイルを開始します。次のコマンドを使用します。

# nginxのダウンロード。ここでは1.15.10のバージョンをダウンロードしていますが、他のバージョンを使用する場合はダウンロードリンクの1.15.10を対象のバージョンに変更してください。
wget http://nginx.org/download/nginx-1.15.10.tar.gz
# 解凍して圧縮ファイルを削除
tar -xvzf nginx-*.tar.gz && rm -rf nginx-*.tar.gz
# nginxディレクトリに移動
cd nginx*
# Makefileを生成します。./configureの後に上記で確認したパラメータをコピーし、後ろに--add-module=/www/server/ngx_brotliを追加します。
./configure --user=www --group=www --prefix=/www/server/nginx ... --add-module=/www/server/ngx_brotli
# nginxをコンパイルします。
make && make install

問題がなければ、コンパイルが完了します。次に、次のコマンドを使用して情報を確認します。

nginx -V

image

返されたパラメータに--add-module=/www/server/ngx_brotliが追加されていれば、コンパイルに成功しています。

手動でのコンパイル以外にも、宝塔パネルに付属のNginxインストールスクリプトを使用して簡単かつエラーレートの低い方法もあります。大まかな手順は以下の通りです。

1. nginxのインストールスクリプトを編集します。パスは/www/server/panel/install/nginx.shで、Install_Configure(){...}またはInstall_Nginx(){...}のフィールドを見つけて、インストールするnginxのバージョン番号を見つけ、./configure --user=www ...の後に--add-module=/www/server/ngx_brotliを追加します。間には半角スペースを1つ入れることを忘れないでください。

2. SSHクライアントで次のコマンドを使用してコンパイルを開始します。自分のバージョンに合わせて、後ろの数字を1.10、1.12、1.14、1.15、1.17、1.8、openrestyなどに変更してください。
sh /www/server/panel/install/nginx.sh install 1.16

3. インストールが完了したら、nginx -Vコマンドを使用してモジュールが含まれているかどうかを確認します。

3. Brotli 圧縮の有効化
次に、パネルの左側のソフトウェアストア -Nginx設定 - 設定変更をクリックし、以下の内容をhttpセクション内に追加してBrotli圧縮を有効にします。

brotli on;
brotli_comp_level 6;
brotli_min_length 512;
brotli_types text/plain text/javascript text/css text/xml text/x-component application/javascript application/x-javascript application/xml application/json application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype;
brotli_static always;

最後に、Nginx設定の「設定の再読み込み」をクリックして設定を有効にします。

Brotliのすべてのパラメータの詳細:

brotli on;              # 有効にする
brotli_comp_level 6;    # 圧縮レベル。デフォルトは6で、最大は11です。高い圧縮レベルはより多くのCPUを必要とする場合があります。
brotli_buffers 16 8k;   # リクエストバッファの数とサイズ
brotli_min_length 20;   # 圧縮するデータの最小長を指定します。この例では20バイト以上である必要があります。
brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp;   # 圧縮対象のタイプを指定します。
brotli_static always;   # 圧縮済みの.brファイルを検索するかどうか。on、off、alwaysのいずれかを指定できます。
brotli_window 512k;     # ウィンドウサイズ。デフォルト値は512kです。

image

すべての設定が完了したら、Google Chrome などのブラウザで開いてbrフィールドが表示されるか確認してください。

最後に、私は圧縮効果がまあまあだと感じました。興味がある方は試してみてください。他のインストール環境でも、ほぼ同じ手順でインストールできます。ここでは、BrotliGzipが共存しており、両方が有効になっていることを前提としています。利点は、一部の古いブラウザがBrotliをサポートしていない場合、自動的にGzip圧縮に切り替わることです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。