Nginx

Nginx - 多個 dockerized Angular 應用程序的通用維護頁面

  • March 19, 2018

我正在使用 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 又包含所有虛擬主機配置?

添加一個新的配置文件maintenance.conf,其中包含:

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

然後使用

include /path/to/maintenance.conf;

在您的虛擬主機配置中。

引用自:https://serverfault.com/questions/903425