Как приостановить работу сайта во время обновления?

12
AS
На сайте с 24.11.2011
Offline
9
2556

Есть скриптик на bash'e, который обновляет сайт из SVN, ставит нужные права и выполняет миграции. Это занимает примерно секунд 10-30. Сайт, естественно, частично не работает в это время.

Хочется перед началом апдейта сделать так, чтобы по-любому запросу к сайту клиент получал статус 503 с текстом "Идут кратковременные технические работы", а после апдейта все возвращалось на свои места.

Пожалуйста, подскажите, как такое сделать? (Debian 5) Была идея заменять временно .htaccess корня сайта, потом восстанавливать реальный .htaccess сайта, но мне кажется это неправильный подход.

izbushka
На сайте с 08.06.2007
Offline
110
#1
AntonSkor:
Пожалуйста, подскажите, как такое сделать? (Debian 5) Была идея заменять временно .htaccess корня сайта, потом восстанавливать реальный .htaccess сайта, но мне кажется это неправильный подход.

Мне кажется, отличный подход.

В любом случае, вам придется это делать средствами web-сервера, т.к. cms в процессе одновления в нерабочем состоянии. А для этого .htaccess удобнее всего, тем более учитывая непродолжительный (10-30 сек) даунтайм

M
На сайте с 16.09.2009
Offline
278
#2
izbushka:
В любом случае, вам придется это делать средствами web-сервера, т.к. cms в процессе одновления в нерабочем состоянии.

Это смотря какая "cms". Drupal - вполне рабочий, там есть специальный режим для обслуживания сайта, который делает именно то, что нужно ТС.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
AS
На сайте с 24.11.2011
Offline
9
#3

Да не CMS у меня, самописный движок. Схема такая: есть рабочая копия на VPS, потом:

1) Выполняется svn update

2) rsync: рабочая копия -> папка с сайтом на сервере

3) Расстановка прав

С .htaccess вариант возможен, но сам .htaccess лежить в SVN, поэтому возможны проблемы.

M
На сайте с 16.09.2009
Offline
278
#4
AntonSkor:
Да не CMS у меня, самописный движок.

Это все поняли. Вам просто-напросто написали как делают люди.

AntonSkor:
С .htaccess вариант возможен, но сам .htaccess лежить в SVN, поэтому возможны проблемы.

Только из-за кривых рук и нежелания минимально подумать головой.

D
На сайте с 05.06.2007
Offline
155
#5

Файлы ведь обновляются включая .htaccess, тогда если VPS, создать другой временный vhost апачу для сайта, сделать рестарт, выполнить обновления, вернуть назад нормальный vhost, сделать рестарт.

Все команды включая обновление можно сунуть в крон.

myhand это лишь один из вариантов, в критике не нунуждается, спасибо :)

Написал не мало шедевров ;)
M
На сайте с 16.09.2009
Offline
278
#6
Dimanych:
myhand это лишь один из вариантов, в критике не нунуждается, спасибо :)

Что уж там мелочиться - советуйте арендовать второй сервер, поднимать там сайт и спокойно дальше обновляться на старом.

Нормальные герои всегда идут в обход...

D
На сайте с 05.06.2007
Offline
155
#7

Каждый метод хорош по своему, не спорьте ;)

Andreyka
На сайте с 19.02.2005
Offline
822
#8

Через .htccess редиректить на страницу с помощью рерайта

Не стоит плодить сущности без необходимости
D
На сайте с 05.06.2007
Offline
155
#9
Andreyka:
Через .htccess редиректить на страницу с помощью рерайта

Минус редиректа (если идёт речь именно о редиректе), он любит кешироваться в браузере, иногда на несколько дней. Поэтому из-за 20-30 секунд отключения я бы его не использовал.

N
На сайте с 06.05.2007
Offline
419
#10

Dimanych, так используй тот редирект, который не любит кешироваться в браузере.

Кнопка вызова админа ()
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий