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

0
задан 19 March 2018 в 19:09
1 ответ

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

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

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

include /path/to/maintenance.conf;

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

1
ответ дан 4 December 2019 в 16:00

Теги

Похожие вопросы