您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Django同时运行UWSGI和ASGI

5b51 2022/1/14 8:22:10 python 字数 2751 阅读 553 来源 www.jb51.cc/python

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

概述

我正在尝试实现实时聊天,我看了一下Channel.
文档提到服务器需要使用Daphne运行,daphne需要一个名为ASGI的UWSGI异步版本.

我管理安装和设置ASGI,然后用daphne运行服务器,但只有一个工作者(我理解的ASGI的限制),但负载对于工作者来说太高了.

是否可以使用带有10个工作程序的uWSGI运行服务器来回复HTTP / HTTPS请求并使用ASGI / daphne进行WS / WSS(WebSocket)请求?
或者也许可以运行ASGI的多个实例?

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所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶