Nginx — общая страница обслуживания для нескольких докеризованных приложений Angular

Nginx — общая страница обслуживания для нескольких докеризованных приложений Angular

Я размещаю несколько приложений Angular с помощью Nginx. Все они работают в своих собственных контейнерах, и если контейнер находится в автономном режиме, я отображаю страницу обслуживания, расположенную по адресу /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, который в свою очередь включает все конфигурации виртуальных хостов?

решение1

Добавьте новый файл конфигурации maintenance.conf, который содержит:

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

И затем используйте

include /path/to/maintenance.conf;

в конфигурации вашего виртуального хоста.

Связанный контент