コンテナ再起動後にNginxがクラッシュループ: ベースイメージのdiscourse.confにbrotli_staticが含まれるがモジュールが読み込まれず(unknown directive)

概要
ルーチンのコンテナ再起動(ホスト再起動 / docker restart)後、app コンテナ内の nginx が以下のエラーで起動に失敗します:

nginx: [emerg] unknown directive "brotli_static" in /etc/nginx/conf.d/discourse.conf:172

これにより、手動でパッチを適用するまでサイト全体がダウンします(フォールバックなし — nginx は 80/443 ポートにバインドされません)。

環境

  • ベースイメージ: discourse/base:2.0.20260812-0036
  • nginx: 1.26.3-3+deb13u7(Debian 13/trixie パッケージ、カスタムコンパイルではありません)
  • libnginx-mod-http-brotli-static/-filter 1.0.0~rc-6 がインストールされており、/etc/nginx/mods-enabled/*.conf のシンボリックリンク(正しい load_module 行を含む)が存在し、有効な .so ファイルを指しています。

根本原因
/etc/nginx/nginx.confnginx-common パッケージが所有、未変更)には include /etc/nginx/modules-enabled/*.conf; ディレクティブが含まれていないため、インストールされた Brotli モジュールは読み込まれません。一方、discourse.conf(Discourse テンプレートによって生成)は、モジュールが読み込まれていることを前提として brotli_static on; を出力し続けています。

なぜ即座に失敗しないのか
設定は nginx が実際に(再)起動したときにのみ再解析されます。新しく再構築されたコンテナは、何らかの要因(ホスト再起動、docker restart、OOM など)で nginx が再起動されるまで、数日から数週間正常に動作し続ける可能性があります。その時点で、自動復旧なしにサイレントにクラッシュループ(約1回/秒)を開始します。

ワークアラウンド
/etc/nginx/nginx.conf の先頭行(メインコンテキスト、events {} の前)に include /etc/nginx/modules-enabled/*.conf; を追加してください。これにより nginx -t が成功し、正常な動作が復旧することが確認されています。

依頼
ベースイメージの nginx.conf にこの include を追加するか、ディストリビューションの nginx パッケージビルドがデフォルトで Brotli サポートをバンドルしなくなった場合、同梱の discourse.conf テンプレートから brotli_static/brotli を削除するかのいずれかに対応していただけますか?