赞
踩
Django从 3.0版开始加入对ASGI的支持,使Django开始具有异步功能。
截止目前的5.0版,对异步支持逐步也越来越好,相信在未来的版本中异步将会支持的更加完善。
所以说,我们也需要适时的更新我们的技能,学会在asgi异步服务器环境中部署django项目!
在部署之前我们所有的依赖均隔离在python的虚拟环境中,并不是在全局环境中,包括supervisor也是通过pip命令安装到虚拟环境中使用,并不使用 ubuntu的 sudo apt install命令安装在全局环境中,这是需要注意的一点!
在部署之前一定要先激活虚拟环境!
# ubuntu激活虚拟环境
source venv/bin/activate
项目依赖安装,根据各自的项目安装,一般标准的项目依赖均收集在项目根目录的requirements.txt文件中!
Daphne 是一个纯 Python 的 ASGI 服务器,由 Django 项目的成员维护。它充当了 ASGI 的参考服务器。
你可以使用pip
安装 Daphne:
pip install daphne
终端启动命令
daphne -b 0.0.0.0 -p 8000 baykeproject.asgi:application
运行该命令后它将开启一个进程,监听 0.0.0.0:8000
。这需要你的项目位于 Python path 上。为了确保这点,你应该在与 manage.py
文件相同的路径中运行这个命令。
但我们总不能每次部署都需要再终端去使用这个命令吧,所以接下来就需要用到一个进程管理工具supervisor来托管该进程!
在此之前,我们需要先在项目根目录中的deploy目录下新建一个asgi的文件夹,并将daphne的ini配置文件放在该目录下以备后续使用!
[fcgi-program:asgi] # TCP socket used by Nginx backend upstream # Nginx 后端上游使用的 TCP 套接字 socket=tcp://localhost:8000 # Directory where your site's project files are located # 站点项目文件所在的目录 directory=/home/qbc/web/code # Each process needs to have a separate socket file, so we use process_num # 每个进程都需要有一个单独的socket文件,所以我们使用process_num # Make sure to update "mysite.asgi" to match your project name # 确保更新 “mysite.asgi” 以匹配您的项目名称 command=daphne -u /home/qbc/web/deploy/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers baykeproject.asgi:application # Numbe
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。