![覆蓋 NGINX 中託管的各個網站以顯示維護頁面](https://rvso.com/image/762144/%E8%A6%86%E8%93%8B%20NGINX%20%E4%B8%AD%E8%A8%97%E7%AE%A1%E7%9A%84%E5%90%84%E5%80%8B%E7%B6%B2%E7%AB%99%E4%BB%A5%E9%A1%AF%E7%A4%BA%E7%B6%AD%E8%AD%B7%E9%A0%81%E9%9D%A2.png)
我們有一個架構,可以在 NGINX 中託管多個站點。每個 NGINX 網站都有自己的配置。
我們想要做的是在維護期間,一旦發出頁面請求,就顯示一個通用的 Maintenance.html 頁面。雖然我們可以進入每個網站的 website.conf 檔案並插入重寫規則,但這並不是一個完整的解決方案 - 它更像是我們試圖避免的駭客攻擊。
我們希望在根級別的 nginx.conf 檔案中實現這一點,從而任何超過 (443) 的請求都將被攔截(在加載其自己的配置文件之前)並重定向到公共 Maintenance.html 頁面。
如何在 nginx.conf 檔案層級實現這一點?
謝謝
答案1
您可以對所有主機進行一次編輯(並且不要忘記編輯建立這些主機的範本),之後您將不再需要全部編輯它們。
您建立一個空文件,您可以呼叫該文件,例如“all_vhosts_override”。您可以include "all_vhosts_override";
在每個虛擬主機定義的頂部附近新增location
和alias
條目。
當您需要一次覆寫所有虛擬主機中的某些內容時,您可以將語句新增至該檔案並重新載入 nginx。所有虛擬主機將從這個單一檔案接收配置,您不需要更新它們的單獨配置。完成維護後,只需將覆蓋檔案清空,然後重新載入即可。