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

12
T
На сайте с 19.12.2006
Offline
101
#11

Если фронтэндом nginx, можно сделать так (в разделе описания конфига сайта)

error_page 503 @503;

location @503 { rewrite ^(.*)$ /maintenance.html break; }

if (-f $document_root/maintenance.html) {

return 503;

}

В корень сайта положить maintenance.html_bak

Ваш башевый скрипт перед началом работы переименовывает maintenance.html_bak в просто maintenance.html.

Nginx, если видит файл maintenance.html в корне сайта - отдает 503 (поисковики на него хорошо реагируют, ибо "временно недоступен").

После отработки башевого скрипта файл переименовывается обратно в maintenance.html_bak

Сайт продолжает работу.

Естественно, в maintenance.html пишите что-нить обнадеживающее, чтобы юзеры не напугались.

AS
На сайте с 24.11.2011
Offline
9
#12
telemad:
Если фронтэндом nginx, можно сделать так (в разделе описания конфига сайта)

error_page 503 @503;
location @503 { rewrite ^(.*)$ /maintenance.html break; }
if (-f $document_root/maintenance.html) {
return 503;
}

В корень сайта положить maintenance.html_bak
Ваш башевый скрипт перед началом работы переименовывает maintenance.html_bak в просто maintenance.html.
Nginx, если видит файл maintenance.html в корне сайта - отдает 503 (поисковики на него хорошо реагируют, ибо "временно недоступен").
После отработки башевого скрипта файл переименовывается обратно в maintenance.html_bak
Сайт продолжает работу.
Естественно, в maintenance.html пишите что-нить обнадеживающее, чтобы юзеры не напугались.

Спасибо! То, что нужно. Nginx стоит, пойду разбираться куда писать то, что Вы написали :)

12

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