Конфигурация сервера каналов Django: Ubuntu. 404 при рукопожатии

Я пытаюсь настроить каналы django для работы на моем сервере Ubuntu (цифровой океан).

У меня есть сервер redis, работающий на port 6379. Дафна прослушивает конечную точку unix:/home/mysite/sockets/mysite.sock с HTTP/2 support enabled (не уверен, что это требуется на данном этапе). У меня также есть один ./manage.py runworker Listening. Моя команда запуска Дафны была

daphne -u /home/mysite/sockets/mysite.sock project.asgi:channel_layer

Мои http-запросы проходят (в журнале daphne), как и в моей локальной среде, например.

#local
127.0.0.1:62241 - - [09/Oct/2017:21:03:41] "GET /playground/channel-simple" 200 1826

#server (side note. not sure why port + host are eliminated here.?)
None - - [09/Oct/2017:21:53:51] "GET /playground/channel-simple" 200 1622

Однако, когда я запрашиваю URL-адрес веб-сокета через js, все разваливается...

#local
127.0.0.1:62268 - - [09/Oct/2017:21:03:43] "WSCONNECTING /chat/private-room/" - -
127.0.0.1:62268 - - [09/Oct/2017:21:03:43] "WSCONNECT /chat/private-room/" - -

#server
None - - [09/Oct/2017:21:54:04] "GET /chat/private-room/" 404 86

Похоже, что он обрабатывает запрос как http-запрос, а не как соединение через веб-сокет? Это также журнал консоли js...

#server - js response to connection
WebSocket connection to 'ws://[MY-IP]/chat/private-room/' failed: Error during WebSocket handshake: Unexpected response code: 404

Кто-нибудь может подсказать, где этот 404 может быть уволен? Или любые советы по отладке.

Спасибо.


person Port Edison    schedule 09.10.2017    source источник


Ответы (1)


Я понял проблему здесь, и теперь он работает на сервере, как и ожидалось. Я не завершил настройку nginx. Нуб :).

Следующие статьи оказались очень полезными.

https://www.nginx.com/blog/websocket-nginx/

http://masnun.rocks/2016/11/02/deploying-django-channels-using-daphne/

person Port Edison    schedule 09.10.2017