我目前正在运行Django(2.0.2)服务器,其中
uWSGI有10名工作人员
我正在尝试实现实时聊天,我看了一下Channel.
文档提到服务器需要使用Daphne运行,daphne需要一个名为ASGI的UWsgi异步版本.
我管理安装和设置Asgi,然后用daphne运行服务器,但只有一个工作者(我理解的Asgi的限制),但负载对于工作者来说太高了.
是否可以使用带有10个工作程序的uWsgi运行服务器来回复HTTP / HTTPS请求并使用Asgi / daphne进行WS / WSS(WebSocket)请求?
或者也许可以运行Asgi的多个实例?
解决方法
可以在Asgi旁边运行Wsgi,这是Nginx配置的一个例子:
server { listen 80; server_name {{ server_name }}; charset utf-8; location /static { alias {{ static_root }}; } # this is the endpoint of the channels routing location /ws/ { proxy_pass http://localhost:8089; # daphne (Asgi) listening on port 8089 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { proxy_pass http://localhost:8088; # gunicorn (Wsgi) listening on port 8088 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 75s; proxy_read_timeout 300s; client_max_body_size 50m; } }
要正确使用/ ws /,您需要输入以下URL:
ws://localhost/ws/your_path
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。