Ubuntu + Django(DRF) + channels(websocket)+NGINX + uwsgi 环境部署

原来uwsgi并不能启动  asgi  呀!现在才知道,就因为这一点我花了一周时间才成功啊!!!!!!!!

是呀!你启动uwsgi 是将你的项目启动了,可是你也发现虽然启动了,但是你的websocket不能访问???why??

原因是你的ASGI没有启动

明明你使用python manage.py runserver 是可以访问的,但是为啥部署到服务器上不能访问呢?

原因是uwsgi服务器不能启动ASGI, 但是你启动了WSGI所以可以访问HTTP请求,你可以留意一下启动的日志。。。。坑啊!

要想启动ASGI 

那就得使用Daphne启动

daphne -p 8002 -b 192.168.233.129 test_django.asgi:application

你不用管 test_django.asgi, 就像uwsgi.ini 里面的module的test_django.wsgi 不是一个文件,test_django是项目名称

还有一个要注意的地方:

  就是在阿里云里面 启动 Daphne -b +本机IP(192.168.。。。)  不能是外网IP 以及 127.0.0.1(默认),端口需要开放

好了!ASGI启动了。。。。。。。。。

WSGI启动就不说了!太多了

不过usgi.ini 里面要注意一个东西,那就是静态文件的路径配置

static-map=/static=/home/wb/Desktop/test_django/static/ 

好了,现在就是配置NGINX了, 使它能同时兼容HTTP,WebSocket两种协议

。。。

posted on 2019-07-20 22:43  天下无槛,不服就干  阅读(1240)  评论(0编辑  收藏  举报

导航