Я пытаюсь настроить страницу обслуживания для моего приложения Meteor 1.8.1, работающего в Ubuntu 18.04. Я использую Phusion Passenger / Nginx.
Приложение работает нормально, но я не могу понять, как вернуть код ошибки, например 503, когда сайт закрыт на техническое обслуживание.
Я пытался добавить это в свой конфигурационный файл:
server {
listen 80;
server_name x.x.x.x;
# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/myapp/bundle/public;
# Turn on Passenger
passenger_enabled on;
...
passenger_intercept_errors on;
location / {
return 503;
}
....
}
, но приложение все еще отображается в моем браузере, когда я хочу увидеть страницу с ошибкой (я знаю! Противоположность обычной проблемы! )
Я также пытался поместить отдельный блок сервера перед основным блоком сервера приложений, в тот же файл конфигурации приложения:
server {
error_page 503 /error503.html;
location / {
return 503;
}
}
и это:
server {
error_page 503 /error503.html;
return 503;
}
Я не могу найти какие-либо конкретные c инструкции для Пассажира, но этот код выглядит нормально для Nginx.
Редактировать: если я просто верну 503 без блока местоположения в моем основном приложении серверный блок, который возвращает код ошибки, но теперь я не могу отобразить пользовательскую страницу ошибки, и я не знаю, почему блок местоположения не работает.
Код ниже показывает 503 ошибка в браузере, указывающая на то, что моя пользовательская страница обслуживания обнаружена, но я все еще Я вижу страницу ошибки 503 по умолчанию:
if (-f /var/www/html/maintenance_on.html) {
return 503;
}
error_page 503 /var/www/html/maintenance_on.html;
Я также пробовал это:
if (-f /var/www/html/maintenance_on.html) {
return 503;
}
error_page 503 /maintenance_on.html;
location = /maintenance_on.html {
root /var/www/html/;
}
Есть идеи, что я делаю неправильно? Спасибо.