Ubuntu 上の nginx で brotli 圧縮を有効にする
Ubuntu 上の nginx で brotli 圧縮を有効にした話。
環境
- Ubuntu
- 24.04.3 LTS
- nginx
- nginx/1.24.0 (Ubuntu)
前フリ的なお話
Ubuntu の公式パッケージの nginx で brotli 圧縮を有効にしたい、みたいな話をググると「ソースからビルド」みたいな情報しか引っかからない。
いまどきそんなことはないだろう、と思って調べていたら、案の定 apt だけで完結する方法があった。
というお話。
結論
libnginx-mod-http-brotli-filter 使え
前提条件
- nginx はすでにインストール & 設定済み
インストール
$ sudo apt install libnginx-mod-http-brotli-filter
これを実行すると /etc/nginx/modules-enabled 以下に brotli 用のモジュール設定が追加される。
念の為、確認。
$ ls -l /etc/nginx/modules-enabled/
total 4
lrwxrwxrwx 1 root root 62 Jun 18 2025 50-mod-http-brotli-filter.conf -> /usr/share/nginx/modules-available/mod-http-brotli-filter.conf
となれば OK 。
実態は /usr/share 以下にあるのね。
nginx の設定
サイト全体で共通の設定にしたいので /etc/nginx/nginx.conf に以下を追加。
##
# br Settings
##
brotli on;
brotli_comp_level 5;
brotli_min_length 1024;
brotli_types text/plain text/html text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
圧縮する対象の Content-Type とかは必要に応じて変更すること。
nginx 再起動
restart ではなく reload でいい気もするが、念の為 restart しておく。
$ sudo systemctl restart nginx
あとはブラウザのデベロッパーツールなどで brotli 圧縮されていることを確認すれば終了。
なぜか有効になってない場合
/etc/nginx/modules-enabled/50-mod-http-brotli-filter.confが存在するかチェック- 存在しないなら インストール からやり直し
/etc/nginx/nginx.conf内にinclude /etc/nginx/modules-enabled/*.confが存在するかチェック- 存在しなければ追記する
sudo nginx -tで設定が正しいかチェック- エラーが出たら修正する