Страница автоматического обслуживания сервера Apache
-
01-07-2019 - |
Вопрос
У меня есть веб-сайт, работающий на стеке Linux/Apache/Tomcat, который каждые несколько месяцев необходимо автоматически отключать от сети для обслуживания сервера, которое будет длиться произвольное количество времени.Каковы варианты заставить Apache создавать и удалять страницу «обслуживания сервера»?
Мне нужно иметь возможность контролировать это с помощью сценария оболочки.(Ответы, предоставленные Google, касаются ручного редактирования конфигурации сервера, и я не хочу быть в офисе в 3 часа ночи!) Полагаю, я мог бы добавить сценарий в файл .htaccess и удалить его, когда он будет готов, но это кажется менее чем изящным.
Комментарий к ответу:
Ответ Майка похоже на лучший ответ, хотя то, что я сделаю, вероятно, больше похоже на Ответ Дэна потому что сторонний хостинг-провайдер контролирует балансировщик нагрузки, и я не хочу иметь дело с этим беспорядком.Спасибо!
Решение
У нас есть установка, которая делает именно это, но она включает в себя нечто большее, чем просто Apache.За ним стоит балансировщик нагрузки и два сервера.Оба веб-сервера обслуживают веб-сайт с использованием Apache, а один из них имеет дополнительный виртуальный хост, который обслуживает простую страницу обслуживания HTML.Балансировщик нагрузки имеет виртуальный HTTP-сервис, который перенаправляет запросы на реальные серверы.Этот виртуальный сервис имеет три реальных сервера:два — это настоящие серверы, а третий — виртуальный IP-адрес на втором сервере, который указывает на страницу обслуживания.Реальные серверы взвешиваются, причем третий имеет наименьший возможный вес, а балансировщик нагрузки использует фиксированный алгоритм взвешивания.Поэтому, когда реальные веб-сайты по какой-либо причине отключаются от сети, все запросы передаются на хост обслуживания, и пользователи видят красивую страницу ошибки с номером телефона.На самом деле я использую небольшой скрипт для проверки работоспособности реальных серверов, поэтому страница обслуживания отображается, как только появляются какие-либо признаки неисправности.
ПС.Я использую Load Master 1500 для балансировки нагрузки.
Другие советы
Запустить Apache с помощью специального файла конфигурации довольно легко.В моей системе:
httpd -f <config>
Я регулярно использую это в сочетании со сценарием оболочки и чрезвычайно простой конфигурацией в качестве заполнителя для обслуживания.Скрипт просто останавливает мой обычный Apache и запускает этот.
создайте 2 файла конфигурации и поменяйте их местами туда и обратно
Если изменится лишь небольшая часть файла, объедините их с помощью своего рода препроцессора и сгенерируйте как стандартную, так и «автономную» версии из одного источника и замените их.
IIRC файлы конфигурации Apache в любом случае создаются с использованием CPP
Мы сделали нечто подобное.У нас есть index.html, который перенаправляет на главную страницу нашего сайта.Во время обслуживания мы запускаем скрипт, который меняет перенаправление в html-файле.Затем мы запускаем скрипт в cron и открываем окно автоматического обслуживания viola.
Надеюсь, это поможет!