Переопределение отдельных веб-сайтов, размещенных в NGINX, для отображения страницы обслуживания

Переопределение отдельных веб-сайтов, размещенных в NGINX, для отображения страницы обслуживания

У нас есть архитектура, в которой мы размещаем несколько сайтов в NGINX. Каждый сайт NGINX имеет свою собственную конфигурацию. Каждый из этих сайтов указывает на общую кодовую базу, но указывает на другое доменное имя и его связанный SSL.

Что мы хотим сделать, так это во время обслуживания показывать общую страницу Maintenance.html после того, как сделан запрос на страницу. Хотя мы можем зайти в файл website.conf для каждого веб-сайта и вставить правило перезаписи, это не полное решение — это скорее хак, которого мы пытаемся избежать.

Мы хотели бы реализовать это в файле nginx.conf на корневом уровне, в результате чего любой запрос, поступающий с кодом выше (443), будет перехватываться (до загрузки его собственного файла конфигурации) и перенаправляться на общую страницу Maintenance.html.

Как это можно сделать на уровне файла nginx.conf?

Спасибо

решение1

Вы можете один раз отредактировать все хосты (и не забудьте отредактировать шаблон, на основе которого они созданы), и после этого вам больше никогда не придется редактировать их все.

Вы создаете пустой файл, который вы можете назвать, например, "all_vhosts_override". Вы добавляете include "all_vhosts_override";около верхней части каждого определения vhost, выше всех locationи aliasзаписей.

Когда вам нужно переопределить что-то во всех vhosts одновременно, вы добавляете операторы в этот файл и перезагружаете nginx. Все vhosts получат конфигурацию из этого одного файла, вам не нужно будет обновлять их индивидуальные конфигурации. Просто очистите файл override пустым, когда закончите обслуживание, и перезагрузите снова.

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