原來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兩種協議
。。。