На одном из проектом используем такой конфиг:
...
if (-f /var/www/project/deploy) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}
...
В начале деплоя создается файл /var/www/project/deloy, после деплоя удаляется. В проекте есть файл maintenance.html в котором написано что идут технические работы.