Websocket 不能通过Nginx+Uwsgi 连接到我的Django
我现在用Django处理这些urls
http://[host]:[port]/events
里面有一个ws
<ws://[host]:[port]/alarm>
现在我是nginx:10001 uwsgi:10002
我的nginx.conf是这样的
server
{
listen 10001;
root /xxx;
location /alarm {
include uwsgi_params;
uwsgi_pass 127.0.0.1:10002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:10002;
uwsgi_read_timeout 60;
}
......
浏览器却是这样的结果
Status Code:404 Not Found
在我的测试python文件里我这么写的
ws.create_connection("ws://127.0.0.1:10001/alarm")
我启动方式是这样
uwsgi --init uwsgi.ini --http_websockets
我测试的时候发现 在uwsgi的输出里有这样的日志
GET /alarm => generated 77 bytes in 6 msecs (HTTP/1.1 404) 6 headers in 207 bytes (1 switches on core 0)
然后测试python文件是这样
Handshaken 404
uwsgi.ini
WEBSOCKET_FACTORY_CLASS="dwebsocket.backends.uwsgi.factory.uWsgiWebSocketFactory"
http = :8008
socket = :10002
Django里是这样
application = ProtocolTypeRouter({
'websocket':AuthMiddlewareStack(
URLRouter(
alarm.routing.channel_routing
)
),
我怎么改呀老铁们 救救孩子!!
大佬解决了吗 我是Django服务器启动websocket能正常使用,用uwsgi启动后不能正常使用,其他的get,post请求可以。