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