Nginx - 複数の Docker 化された Angular アプリケーションの共通メンテナンス ページ

Nginx - 複数の Docker 化された Angular アプリケーションの共通メンテナンス ページ

私は Nginx で複数の Angular アプリをホストしています。それらはすべて独自のコンテナーで実行され、コンテナーがオフラインの場合は、/var/www/maintenance/ にあるメンテナンス ページを表示します。これを行うには、仮想ホスト構成ファイルは通常次のようになります (無関係な部分は省略)。

server {

        ...  

        location / {
        proxy_pass http://127.0.0.1:8099;
        proxy_set_header X-FORWARDED-FOR $proxy_add_x_forwarded_for;
        proxy_set_header X-FORWARDED-HOST $host;
        proxy_set_header X-FORWARDED-PROTO $scheme;
        proxy_connect_timeout 1;
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504 http_404;
        proxy_intercept_errors on;
        try_files $uri $uri/ /index.html;
        }

        error_page 403 501 502 503 504 /maintenance.html;
        location = /maintenance.html {
            root /var/www/maintenance;
        }
}

これは問題なく動作しますが、変更が必要な場合には面倒です。この機能をメインの nginx.conf に実装したり、メンテナンスしやすくするにはどうすればよいでしょうか。メンテナンス ページの構成をすべての仮想ホスト構成に含めるのではなく、すべての仮想ホスト構成を含む nginx.conf に一度含めることはできますか。

答え1

次の内容を含む新しい構成ファイルを追加しますmaintenance.conf

location = /maintenance.html {
    root /var/www/maintenance;
}

そして、

include /path/to/maintenance.conf;

仮想ホスト構成で。

関連情報