Страница автоматического обслуживания сервера Apache

У меня есть веб-сайт, работающий в стеке Linux / Apache / Tomcat, который необходимо автоматически отключать каждые несколько месяцев для обслуживания сервера, которое будет длиться произвольное количество времени. Какие есть варианты заставить Apache создать и удалить страницу «обслуживания сервера»?

Мне нужно иметь возможность контролировать это с помощью сценария оболочки. (Ответы, которые предоставил Google, вращаются вокруг ручного редактирования конфигурации сервера, и я не хочу находиться в офисе в 3 часа ночи!) Я полагаю, я мог бы поместить скрипт в файл .htaccess и удалить его, когда это будет сделано, но это кажется менее чем изящным.


Комментарий к ответу:

Ответ Майка выглядит как лучший ответ, хотя то, что я сделаю, вероятно, больше похоже на Ответ Дэна, потому что сторонний хостинг-провайдер контролирует балансировщик нагрузки, и я не хочу иметь дело с этим беспорядком. Спасибо!

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
4
0
6 132
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

сделать 2 файла конфигурации и поменять их местами вперед и назад

Если изменится лишь небольшая часть файла, объедините их с помощью своего рода препроцессора и сгенерируйте как стандартную, так и автономную версии из одного источника и поменяйте местами их.

IIRC, файлы конфигурации apache в любом случае создаются с использованием CPP

Мы сделали нечто подобное. У нас есть index.html, который перенаправляет на нашу главную страницу сайта. Когда у нас есть обслуживание, мы запускаем скрипт, который изменяет перенаправление в html-файле. Затем мы просматриваем скрипт в окне автоматического обслуживания cron и viola.

Надеюсь, это поможет!

довольно легко запустить Apache с помощью специального файла конфигурации. В моей системе:

httpd -f <config>

Я регулярно использую это в сочетании со сценарием оболочки и чрезвычайно простой конфигурацией в качестве заполнителя для обслуживания. Сценарий просто останавливает мой обычный Apache и запускает его.

Ответ принят как подходящий

У нас есть установка, которая делает именно это, но включает в себя не только apache. За ним стоит балансировщик нагрузки и два сервера. Оба веб-сервера обслуживают веб-сайт с помощью Apache, и один из них имеет дополнительный виртуальный хост, который обслуживает простую страницу обслуживания HTML. Балансировщик нагрузки имеет виртуальную службу HTTP, которая перенаправляет запросы на реальные серверы. Эта виртуальная служба имеет три реальных сервера: два - настоящие серверы, а третий - виртуальный IP-адрес на втором сервере, который указывает на страницу обслуживания. Реальные серверы взвешиваются, причем третий имеет наименьший возможный вес, а балансировщик нагрузки использует алгоритм фиксированного взвешивания. Поэтому, когда реальные веб-сайты по какой-либо причине отключаются, все запросы отправляются на узел обслуживания, и пользователи видят красивую страницу ошибки с номером телефона. Фактически, я использую небольшой скрипт для проверки работоспособности реальных серверов, поэтому страница обслуживания отображается, как только появляются какие-либо признаки неисправности.

PS. Я использую Load Master 1500 для балансировки нагрузки.

Другие вопросы по теме