ПРИМЕЧАНИЕ. Этот ответ касается настроек nginx или Rack, так как он был написан до того, как редактирование исходного вопроса дало понять, что он ищет ответ, специфичный для Heroku.Принятый ответ лучше всего подходит для приложений Heroku.
Когда вы говорите «в своем приложении», вы действительно имеете в виду в вашем приложении?
Потому что, как правило, решение состоит в том, чтобы поместить файл обслуживания в корневой веб-каталог.Если файл найден, он сразу же получает 503 Service Not Available
.Запрос даже не попадает в ваше приложение, которое, по-видимому, «отключено на техническое обслуживание».
В nginx что-то вроде этого:
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
# continued server directives
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}
Это на самом деле не требует нажатияСамо по себе, но, возможно, простая задача с граблями или что-то, чтобы добавить / удалить этот файл обслуживания из вашего приложения.Вы также можете заменить любое заданное имя файла в проверке -f
и просто touch
пустой произвольный файл maintenance.whatever
в своем веб-корне, который затем направит nginx на обслуживание mainenance.html
.
Если вы не хотите (или не можете) бездельничать с конфигурацией сервера, это очень простое промежуточное программное обеспечение Rack, по сути, делает то же самое: https://github.com/ddollar/rack-maintenance