Django 频道服务器配置:Ubuntu.握手时404



我正在尝试配置 django 频道以在我的 ubuntu 服务器(数字海洋)上运行。

我在port 6379上运行了 redis 服务器。Daphne 正在使用 HTTP/2 support enabled 侦听端点 unix:/home/mysite/sockets/mysite.sock(不确定此阶段是否需要)我还有一个./manage.py runworker听。我的达芙妮运行命令是

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

我的 http 请求通过(在达芙妮日志中),就像它们在我的本地环境中一样,例如

#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

但是,当我通过 js 请求一个 websocket url 时,一切都会崩溃......

#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 请求而不是 websocket 连接?这也是 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 可能在哪里被解雇?或有关调试的任何提示。

谢谢。

我已经在这里解决了这个问题,现在它按预期在服务器上工作。我还没有完成nginx配置。菜鸟:)。

以下文章非常有用。

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

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

最新更新