Django Channels Дафна возвращает 200 кодов состояния - PullRequest
5 голосов
/ 20 сентября 2019

Я установил приложение Django с помощью Nginx + uwsgi.Приложение также использует django-каналы с redis.При развертывании установки на отдельном компьютере все работает нормально.

Но когда я попытался настроить приложение в 2 случаях и настроить общий балансировщик нагрузки для координации запросов, запрос был правильно перенаправлен в процесс daphne.и я вижу логи.Но код состояния, возвращаемый процессом daphne, равен 200 вместо 101.

Балансировщик нагрузки nginx conf:

upstream webservers {
    server 10.1.1.2;
    server 10.1.1.3;
}


server {
    location / {
        proxy_pass http://webservers;
    }
}

Используемые версии:

daphne==2.2.4
channels==2.1.6
channels-redis==2.3.2

Вся маршрутизацияработает нормально и ошибок нет, просто код состояния возвращается 200 вместо 101.

1 Ответ

3 голосов
/ 23 сентября 2019

Попробуйте добавить следующие заголовки, надеемся, что это поможет:


server {
    location / {
        proxy_pass http://webservers;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
   }
}

Полная официальная инструкция о том, как настроить Django Channels + Nginx , можно найти здесь

...