Страница автоматического обслуживания сервера Apache - PullRequest
3 голосов
/ 19 сентября 2008

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

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


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

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

Ответы [ 4 ]

5 голосов
/ 19 сентября 2008

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

PS. Я использую Load Master 1500 для loadbalancer.

3 голосов
/ 19 сентября 2008

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

httpd -f <config>

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

1 голос
/ 19 сентября 2008

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

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

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

0 голосов
/ 19 сентября 2008

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

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

...