Выбор ответа Junior HTTP, WSGI и ASGI обновлено
runserver и --reload в проде
Вопрос
Почему нельзя запускать прод через python manage.py runserver или uvicorn --reload?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Это режимы разработки: один процесс, слежение за файлами, без устойчивости. runserver в документации Django прямо помечен как непригодный для продакшена: он не проходил аудит безопасности и не рассчитан на нагрузку. --reload следит за файлами и перезапускает процесс, это лишняя нагрузка и риск.
Варианты ответа
- Они не поддерживают HTTP/1.1 keep-alive и закрывают соединение после ответа
- Они работают только на Windows и macOS, а на Linux падают без отладчика
- Это режимы разработки: один процесс, слежение за файлами, без устойчивостиправильный ответ
- Они запрещены лицензией Django и uvicorn для коммерческого использования
Разбор
runserver в документации Django прямо помечен как непригодный для продакшена: он не проходил аудит безопасности и не рассчитан на нагрузку. --reload следит за файлами и перезапускает процесс, это лишняя нагрузка и риск. В проде используют gunicorn или uvicorn с несколькими воркерами под супервизором (systemd, Docker, Kubernetes) за nginx.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.