覆蓋 NGINX 中託管的各個網站以顯示維護頁面

覆蓋 NGINX 中託管的各個網站以顯示維護頁面

我們有一個架構,可以在 NGINX 中託管多個站點。每個 NGINX 網站都有自己的配置。

我們想要做的是在維護期間,一旦發出頁面請求,就顯示一個通用的 Maintenance.html 頁面。雖然我們可以進入每個網站的 website.conf 檔案並插入重寫規則,但這並不是一個完整的解決方案 - 它更像是我們試圖避免的駭客攻擊。

我們希望在根級別的 nginx.conf 檔案中實現這一點,從而任何超過 (443) 的請求都將被攔截(在加載其自己的配置文件之前)並重定向到公共 Maintenance.html 頁面。

如何在 nginx.conf 檔案層級實現這一點?

謝謝

答案1

您可以對所有主機進行一次編輯(並且不要忘記編輯建立這些主機的範本),之後您將不再需要全部編輯它們。

您建立一個空文件,您可以呼叫該文件,例如“all_vhosts_override”。您可以include "all_vhosts_override";在每個虛擬主機定義的頂部附近新增locationalias條目。

當您需要一次覆寫所有虛擬主機中的某些內容時,您可以將語句新增至該檔案並重新載入 nginx。所有虛擬主機將從這個單一檔案接收配置,您不需要更新它們的單獨配置。完成維護後,只需將覆蓋檔案清空,然後重新載入即可。

相關內容