У меня Nginx работает как обратный прокси-сервер, а за ним стоит приложение Django. Приложение Django подключено к Nginx через UWSGI. Приложение Django развертывается с помощью Docker и отключается примерно на секунду во время развертывания. Я хотел бы поручить Nginx возвращать пользовательскую страницу ошибки 503 в течение этого периода.
Ниже моя конфигурация Nginx:
вышестоящий server_django {
сервер 0.0.0.0:8000;
}
сервер {
слушать 443 ssl http2;
слушать [::]:443 ssl http2;
имя_сервера server.com;
место расположения / {
# требуется для обслуживания статических ресурсов
псевдоним /data/server.com/website_root/;
try_files $uri @django;
}
местоположение @django {
uwsgi_pass server_django;
включить /etc/nginx/uwsgi_params;
}
}
Я попытался добавить следующую конфигурацию внутри блока «сервер»:
uwsgi_intercept_errors включен;
error_page 502 503 504 = 503 @django_is_down;
местоположение @django_is_down {
корень /error_pages/server.com/;
add_header Retry-After 10 всегда;
индекс 503.html;
}
но это не помогло, так как Nginx начал обслуживать страницу 404 по умолчанию, когда серверная часть не работает.
Как мне определить, когда Django не работает в Nginx, и предоставить пользовательскую страницу с ошибкой, когда это произойдет?