Выбор ответа Junior HTTP, WSGI и ASGI обновлено

runserver и --reload в проде

Вопрос

Почему нельзя запускать прод через python manage.py runserver или uvicorn --reload?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Это режимы разработки: один процесс, слежение за файлами, без устойчивости. runserver в документации Django прямо помечен как непригодный для продакшена: он не проходил аудит безопасности и не рассчитан на нагрузку. --reload следит за файлами и перезапускает процесс, это лишняя нагрузка и риск.

Варианты ответа

  1. Они не поддерживают HTTP/1.1 keep-alive и закрывают соединение после ответа
  2. Они работают только на Windows и macOS, а на Linux падают без отладчика
  3. Это режимы разработки: один процесс, слежение за файлами, без устойчивостиправильный ответ
  4. Они запрещены лицензией Django и uvicorn для коммерческого использования

Разбор

runserver в документации Django прямо помечен как непригодный для продакшена: он не проходил аудит безопасности и не рассчитан на нагрузку. --reload следит за файлами и перезапускает процесс, это лишняя нагрузка и риск. В проде используют gunicorn или uvicorn с несколькими воркерами под супервизором (systemd, Docker, Kubernetes) за nginx.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.