NGINX でホストされている個々の Web サイトを上書きしてメンテナンス ページを表示する

NGINX でホストされている個々の Web サイトを上書きしてメンテナンス ページを表示する

当社では、NGINX で複数のサイトをホストするアーキテクチャを採用しています。各 NGINX サイトには独自の構成があります。これらの各サイトは共通のコードベースを指していますが、異なるドメイン名とそれに関連付けられた SSL を指しています。

私たちがやりたいのは、メンテナンス中に、ページがリクエストされたら共通の Maintenance.html ページを表示することです。各 Web サイトの website.conf ファイルにアクセスして書き換えルールを挿入することはできますが、これは完全な解決策ではなく、私たちが避けようとしているハックのようなものです。

これをルート レベルの nginx.conf ファイルに実装し、(443) 経由で入ってくるリクエストはすべて (独自の設定ファイルが読み込まれる前に) インターセプトされ、共通の Maintenance.html ページにリダイレクトされるようにします。

これを nginx.conf ファイル レベルで実現するにはどうすればよいでしょうか?

ありがとう

答え1

すべてのホストを一度編集すれば (これらが作成されたテンプレートも忘れずに編集してください)、その後はすべてを編集する必要がなくなります。

たとえば、「all_vhosts_override」という名前を付けることができる空のファイルを作成します。include "all_vhosts_override";各 vhost 定義の先頭近く、すべてのエントリの上にlocation追加しますalias

すべての vhost で一度に何かをオーバーライドする必要がある場合は、そのファイルにステートメントを追加して nginx をリロードします。すべての vhost はこの 1 つのファイルから構成を受け取るため、個々の構成を更新する必要はありません。メンテナンスが完了したら、オーバーライド ファイルを空にして再度リロードするだけです。

関連情報