我使用 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 中一次,而 nginx.conf 又包含所有虛擬主機配置?
答案1
新增一個新的配置文件maintenance.conf
,其中包含:
location = /maintenance.html {
root /var/www/maintenance;
}
然後使用
include /path/to/maintenance.conf;
在您的虛擬主機配置中。