我的主管配置存在问题,当我使用以下两个代码运行应用程序时,我的应用程序使用django_channles的情况很好 运行良好
(myenv)/colonybit/colonybitbasics/python manage.py runserver 0.0.0.0:8000
或
(myenv)/colonybit/colonybitbasics/daphne -b 0.0.0.0 -p 8000
我在vuejs中还有其他应用程序,上面的代码可以正常工作,但是当我尝试使用下面的代码运行我的应用程序时,像这样
(myenv)/colonybit/ ./bin/start.sh
我的文件start.sh
NAME="colony_app"
DJANGODIR=/home/ubuntu/colonybit # Django project directory
SOCKFILE=/home/ubuntu/colonybit/run/gunicorn.sock
USER=ubuntu # the user to run as
GROUP=ubuntu # the group to run as
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=colonybit.settings
DJANGO_WSGI_MODULE=colonybit.asgi # ASGI module name
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $DJANGODIR
source /home/ubuntu/colonybit/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
exec colonybit ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=0.0.0.0:8000 \
--log-level=debug \
--log-file=-
服务器运行良好,但是我在vuejs中的应用程序显示500错误,无法在django_channels中使用我的应用程序
请告诉我,如何配置我的文件start.sh以使用ASGI
感谢您的时间。
答案 0 :(得分:1)
您的django应用程序可与其开发服务器一起使用,因为该服务器可以为您处理http和websocket请求。现在看来,您的问题出在生产上,而gunicorn无法满足这两个要求,因此达芙妮开始发挥作用。
解决该问题的一种方法是在另一个文件中启动daphne ASGI,该文件包含-exec daphne -b 0.0.0.0 -p 8001 $ DJANGO_ASGI_MODULE:application(请注意此处使用的不同端口),两者的其他部分文件应该非常相似。最近,您可以参考它以获取更多信息,或者看看是否有必要放弃unix套接字(对我有用):https://github.com/django/channels/issues/919#issuecomment-422346729
完成此操作后,请与主管集成,以使您的运行变得简单而稳定。