使用Django同时运行UWSGI和ASGI

使用Django同时运行UWSGI和ASGI,第1张

概述我目前正在运行Django(2.0.2)服务器,其中 uWSGI有10名工作人员 我正在尝试实现实时聊天,我看了一下Channel. 文档提到服务器需要使用Daphne运行,Daphne需要一个名为ASGI的UWSGI异步版本. 我管理安装和设置ASGI,然后用daphne运行服务器,但只有一个工作者(我理解的ASGI的限制),但负载对于工作者来说太高了. 是否可以使用带有10个工作程序的uWSG 我目前正在运行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

然后Nginx将能够升级连接.

总结

以上是内存溢出为你收集整理的使用Django同时运行UWSGI和ASGI全部内容,希望文章能够帮你解决使用Django同时运行UWSGI和ASGI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存