Как лучше всего отключить установку apache2 / tomcat6 для обслуживания? В частности, apache2 может продолжать работать, но tomcat необходимо перезапустить для выполнения ряда задач. Моя первоначальная мысль - изменить корневой каталог в httpd.conf
VirtualHost
вход, чтобы указать на новое место, затем выдать force-reload
команда, чтобы направить трафик от фактического приложения tomcat. Через некоторое время я выполняю обслуживание кота, переключаю VirtualHost
вход и force-reload
чтобы начать направлять движение обратно.
Есть лучший способ сделать это? Я собираюсь начать работу над довольно обширным веб-приложением, и моя процедура развертывания прямо сейчас включает в себя отключение всего и восстановление всего. Есть ли лучший способ сделать это, чем то, что я предложил?
Это либо то, что вы описали выше, либо, если у вас есть балансировщик нагрузки и второй сервер, вы можете перенаправить трафик на LB, чтобы он указывал на резервный сервер (обслуживающий статический "Эй, мы проводим техническое обслуживание! Вернитесь позже ! "страница).
Преимущество обработки окна обслуживания на балансировщике нагрузки (или путем смены IP-адресов на втором сервере) заключается в том, что вы можете протестировать свой стек Tomcat от начала до конца, прежде чем снова направить на него живой трафик, что позволяет избежать неприятных сюрпризов, когда некоторая часть конфигурация из среды разработки проникла в производство.
Я где-то вижу, как это делается:
ErrorDocument 503 "Our website is temporarily closed for maintenance. It should reopen by..."
RewriteEngine On
# TO ALLOW YOURSELF TO ACCESS THE SITE NORMALLY, SET THE NEXT LINE TO YOUR IP ADDRESS.
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$
RewriteRule .* - [R=503,L]
IP 111.222.333.444 - это ваш IP-адрес для доступа к вашему сайту. Все остальные пользователи будут перенаправлены на 503 ErrorDocument. Поместите все это в файл .htaccess в корне вашего виртуального хоста.
Я не знаю, работает ли он с tomcat, но он работает со статическими или PHP-страницами. Конечно, Apache должен быть настроен для чтения файла .htaccess.