Django 3.2.3 - 3.2.6 ошибка обрыва трубы на dev-сервере
Я пробовал beget и digital ocean, разные Django-проекты (свой и примеры) и каждый раз, когда я пытаюсь отправить запрос на сервер с моего компьютера, я получаю
[05/Oct/2021 12:26:24,844] - Broken pipe from ('94.72.62.225', 53959)
Я каждый раз делаю одно и то же:
python3 -m venv env
. env/bin/activate
pip install -r requirements.txt
python3 manage.py makemigrations
python3 manage.py migrate
set ALLOWED_HOSTS=['*'] in settings.py ( ALLOWED_HOSTS=['server_id'] also checked )
python3 manage.py rusnerver 0.0.0.0:8000
инструменты для отправки запросов - google chrome, postman, curl
Найдена проблема. Эта проблема существует только в devserver. Проблема не будет существовать, если вы установите DEBUG=FALSE
. Если вы используете сервер разработки в продакшене, не делайте этого. Вот учебник сообщества, который поможет вам настроить Django с Postgres и Nginx: здесь в Production.
Этот вопрос обсуждался, и вот тикет: django ticket.
В комментариях к этому билету есть довольно четкое объяснение:
Согласно многим источникам, "сломанная труба" - это обычная причуда браузера. Например, браузер читает из сокета, а затем решает, что изображение, которое он читал, не изменилось. Теперь браузер (принудительно) закрывает соединение, потому что ему не нужно больше данных. Другой конец этого сокета (python runserver) теперь поднимает исключение сокета, сообщая программе, что клиент "сломал сокетную трубу".
.