Nginx – Uma página de manutenção comum para vários aplicativos Angular dockerizados

Nginx – Uma página de manutenção comum para vários aplicativos Angular dockerizados

Estou hospedando vários aplicativos Angular com Nginx. Todos eles são executados em seus próprios contêineres e se um contêiner estiver offline, exibo uma página de manutenção localizada em /var/www/maintenance/. Para fazer isso, meus arquivos de configuração de host virtual são geralmente assim (partes irrelevantes omitidas):

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;
        }
}

Isso funciona bem, mas é complicado caso eu precise fazer alterações. Como eu poderia implementar essa funcionalidade no nginx.conf principal ou torná-la mais fácil de manter? Eu poderia, em vez de incluir a configuração da página de manutenção em cada configuração de host virtual, incluí-la uma vez no nginx.conf, que por sua vez inclui todas as configurações de host virtual?

Responder1

Adicione um novo arquivo de configuração maintenance.conf, que contém:

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

E então use

include /path/to/maintenance.conf;

na configuração do seu host virtual.

informação relacionada