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