Я размещаю несколько приложений 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;
в конфигурации вашего виртуального хоста.