Назад | Перейти на главную страницу

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, который, в свою очередь, включает все конфигурации виртуального хоста?

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

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

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

include /path/to/maintenance.conf;

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