Nginx - 多个 Docker 化的 Angular 应用程序的通用维护页面

Nginx - 多个 Docker 化的 Angular 应用程序的通用维护页面

我使用 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;

在您的虚拟主机配置中。

相关内容