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两种协议

。。。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM