FedoraのNginxにBrotliモジュールを導入(どうにゅう)する

FedoraのNginxにBrotliモジュールを導入(どうにゅう)する方法(ほうほう)
なんかバージョンアップのたびに必要(ひつよう)みたいなのでメモに(のこ)します。

ngx_brotliをダウンロードする

初回(しょかい)のみ
Githubから google/ngx_brotli リポジトリをクローンします。
(ため)してないですが、 wget (とう)でダウンロードしても多分(たぶん)大丈夫(だいじょうぶ)です。

$ git clone https://github.com/google/ngx_brotli.git

ngx_brotliのサブモジュール(brotli)を更新(こうしん)

$ cd ngx_brotli/deps/brotli
$ git checkout master
$ git pull

Nginxのソースをダウンロードする

Nginxのダウンロードページ から、 現在(げんざい)利用(りよう)しているNginxのバージョンのソースをダウンロードします。
ダウンロードしたら解凍(かいとう)まで(おこな)っておきます。

$ nginx -v # <- Nginxのバージョン確認
nginx version: nginx/1.20.1
$ wget https://nginx.org/download/nginx-1.20.1.tar.gz
$ tar xzvf ./nginx-1.20.1.tar.gz

ngx_brotliモジュールのビルド

ほぼngx_brotliのREADMEどおりです。
途中(とちゅう)依存(いぞん)するライブラリが()りないと()われたら適宜(てきぎ) dnf でインストールしておきます。

$ ls -1F
nginx-1.20.1/
nginx-1.20.1.tar.gz
ngx_brotli/
$ cd ./nginx-1.20.1/
$ ./configure --with-compat --add-dynamic-module=../ngx_brotli
$ make modules # <- ビルドしたモジュールは objes ディレクトリ内に出力されます。
$ cd ..

ビルドしたモジュールの配置(はいち)

dnf()れたNginxモジュールは /usr/lib64/nginx/modules(はい)るようなのでngx_brotliモジュールもここに()きます。
後述(こうじゅつ)する設定(せってい)ファイルでパスを指定(してい)するのでこの場所(ばしょ)必須(ひっす)ではないです。

$ cp ./nginx-1.20.1/objs/ngx_http_brotli_filter_module.so /usr/lib64/nginx/modules/
$ cp ./nginx-1.20.1/objs/ngx_http_brotli_static_module.so /usr/lib64/nginx/modules/

設定(せってい)ファイルの作成(さくせい)

初回(しょかい)のみ
こちらも(ほか)設定(せってい)ファイルに()わせて /usr/share/nginx/modules配置(はいち)します。

$ touch /usr/share/nginx/modules/mod-http-brotli.conf
$ emacs /usr/share/nginx/modules/mod-http-brotli.conf

/usr/share/nginx/modules/mod-http-brotli.conf

load_module "/usr/lib64/nginx/modules/ngx_http_brotli_filter_module.so";
load_module "/usr/lib64/nginx/modules/ngx_http_brotli_static_module.so";

一応(いちおう)この設定(せってい)ファイルを()()むようになっているか /etc/nginx/nginx.conf確認(かくにん)しておきます。
下記(かき)記述(きじゅつ)があるかを確認(かくにん)し、なければ追記(ついき)しておきます。

/etc/nginx/nginx.conf

︙
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
︙

完了(かんりょう)

あとは nginx -t実行(じっこう)して設定(せってい)ファイルに(あやま)りがないかを確認(かくにん)したり、正常(せいじょう)起動(きどう)できるか確認(かくにん)したり、ブラウザからBrotli圧縮(圧縮)有効(ゆうこう)になっているかを確認(かくにん)して完了(かんりょう)です。