nginx, uwsgi, DJango, 502, когда DEBUG=False, "преждевременно закрытое соединение вверх по течению"

У меня есть рабочий сервер nginx, на котором запущено приложение Django, использующее uwsgi (настроено с помощью этого руководства).

nginx и uwsgi общаются через сокет UNIX.

Однако, как только я перехожу DEBUG = False в моих настройках Django я получаю ошибку 502. Журнал ошибок nginx сообщает мне:

2015/09/08 10:37:51 [error] 940#0: *4 upstream prematurely closed connection while reading response header from upstream, client: myIP, server: mydomain.ca, request: "GET /quests/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/hackerspace.sock:", host: "myDomain"

Как я могу предотвратить тайм-аут подключения к сокету, и почему DEBUG = False делает эту разницу?

Спасибо!

2 ответа

Я нашел решение, которое работает для меня. Я должен был указать хосты для списка ALLOWED_HOSTS в настройках django.py

ALLOWED_HOSTS = ['example.com', 'example.dev']

Ответ "ALLOWED_HOSTS" также решил мою проблему. Обращаем внимание на одну вещь, поскольку в любом случае мне сразу было не ясно, что вы указываете здесь потенциальные доменные имена (IP-адреса и т. Д.), По которым ваш сайт будет доступен. Если ваш сайт http://mysite.here/ то вам необходимо поместить "mysite.here" в список ALLOWED_HOSTS. По-видимому, при Debug=True проверка HOST отсутствует, как только она переключается на False, система начинает отклонять любой запрос, в котором значение заголовка HOST: не отображается в списке. Для дальнейшего чтения: https://docs.djangoproject.com/en/1.10/ref/settings/

Другие вопросы по тегам