ngx_mruby の動的モジュールをビルドするツール

Docker を使って ngx_mruby を動的モジュールとして手元で簡単にビルドできるようにした。

github.com

以下のようなユースケースを想定している。

  1. すでに別のモジュールを静的モジュールとしてビルドした nginx を使っている環境に新たに ngx_mruby を導入したい。
  2. ngx_mruby を運用する環境は Linux (CentOS) だが、ビルドは手元の Mac 等で行いたい。

ngx_mruby を組み込んだ nginx パッケージをビルドする類似のツールとして pepabo/ngx_mruby-package-builder があるけど、 1 のような他のモジュールも組み込む必要があるケースにはマッチしない。 2 のケースについては実行環境とビルド環境が揃っているならば、 ngx_mruby 付属のビルドスクリプトで十分。

使い方

  1. クローンしてきたら make コマンドを実行。
  2. ビルドにそれなりに時間がかかるので ☕ でも飲みながらしばし待つ。
  3. dist ディレクトリに ngx_http_mruby_module.sondk_http_module.so ができる。

お気持ち

ngx_mruby を静的モジュールとして導入すると、後から mrbgem を追加したくなったときや、他のモジュールとの共存する場合に nginx ごとビルドし直すことになる問題があった。 ngx_mruby を動的モジュールとして導入することで、これらを ngx_mruby モジュールに閉じた問題にできるメリットがある。