Websocket не может быть принят Nginx + Uwsgi моему Django. Я использую Django, пишу некоторые url_patterns, такие как
http://[host]:[port]/events
И мне нужно обработать один websocket
<ws://[host]:[port]/alarm>
Nginx listen 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
Я выбираю uwsgi для достижения своей веб-сокета, и в своем тесте я пишу это
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)
И web_client.py выдает мне ошибки ниже
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
)
),
Так где мои ошибки?