V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
myung
V2EX  ›  Django

Django channels 服务器部署 应该怎么搞?

  •  
  •   myung · 2018-06-17 18:49:42 +08:00 · 6486 次点击
    这是一个创建于 2333 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原来没加 channels 的时候 是 django+ nginx +uwsgi 搞的。。。现在加了个 channels 实时聊天,,,不知道该怎么部署了。

    求指点~~

    8 条回复    2020-12-17 16:29:39 +08:00
    tinypig
        1
    tinypig  
       2018-06-17 20:22:32 +08:00
    MES
        2
    MES  
       2018-06-17 22:06:18 +08:00
    两个端口,channel 启一个,django 启一个
    ericls
        3
    ericls  
       2018-06-17 22:38:16 +08:00 via iPhone
    daphne 就够了 如果要 scale 直接启动多个 daphne
    myung
        4
    myung  
    OP
       2018-06-17 22:57:05 +08:00
    @MES
    @ericls

    我现在是用 daphne 启动在 8001 然后 用 再用 uwsgi 8000 端口 + nginx 启动 网站是可以正常浏览,但是在用 chanels 实现到那个聊天 app 里 无法发送消息, 貌似是需要 nginx 做个转发? 求指点
    RobberPhex
        5
    RobberPhex  
       2018-06-18 09:48:50 +08:00
    启动 daphne,接收 http 和 websocket 请求,送到 redis。
    然后启动 django,从 redis 读取数据,处理。
    chaleaochexist
        6
    chaleaochexist  
       2019-04-01 09:43:13 +08:00
    @myung 遇到同样问题.老哥有最佳实践分型吗?
    chaleaochexist
        7
    chaleaochexist  
       2019-04-01 09:43:18 +08:00
    分享.
    leeguo
        8
    leeguo  
       2020-12-17 16:29:39 +08:00
    asgi.py

    ```
    import os

    import django
    from django.core.asgi import get_asgi_application
    from channels.routing import get_default_application

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')
    django.setup()
    # application = get_asgi_application()
    application = get_default_application()

    ```
    daphne -p 8080 my_project.asgi:application

    就可以跑了, 虽然题主可能不需要了, 我给后边的人看的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.