当前位置: 首页 > article >正文

Ubuntu server如何使用 Daphne + Nginx + supervisor部署 Django

Django从 3.0版开始加入对ASGI的支持,使Django开始具有异步功能。

截止目前的5.0版,对异步支持逐步也越来越好,相信在未来的版本中异步将会支持的更加完善。

所以说,我们也需要适时的更新我们的技能,学会在asgi异步服务器环境中部署django项目!

在部署之前我们所有的依赖均隔离在python的虚拟环境中,并不是在全局环境中,包括supervisor也是通过pip命令安装到虚拟环境中使用,并不使用 ubuntu的 sudo apt install命令安装在全局环境中,这是需要注意的一点!

在部署之前一定要先激活虚拟环境!

# ubuntu激活虚拟环境
source venv/bin/activate

项目依赖安装,根据各自的项目安装,一般标准的项目依赖均收集在项目根目录的requirements.txt文件中!

安装Daphne

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配置文件放在该目录下以备后续使用!

  • 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

# Number of pro

http://www.kler.cn/a/227336.html

相关文章:

  • MySQL运维实战(5.3) MySQL数据乱码的一些情况
  • 过来人的经验告诉你:程序员去外包与自研公司的区别
  • 计算机视觉中的目标跟踪
  • Linux驱动 SPI子系统
  • mysql-FIND_IN_SET查询优化
  • 从编程中理解:大脑的并行处理与多任务
  • P8598 [蓝桥杯 2013 省 AB] 错误票据--2024蓝桥杯冲刺省一
  • MATLAB矩阵的操作(第一部分)
  • thinkphp6入门(16)-- cache用法总结
  • Python3 交叉编译 numpy pandas scipy scikit-learn
  • 新零售供应链,尝试使用GaussDB链接场与货【华为云GaussDB:与数据库同行的日子】
  • 堪称灾难级攻击的 UDP FLOOD洪水攻击,应该如何防护?
  • Git使用命令大全
  • React16源码: React中处理hydrate的核心流程源码实现
  • React 面试题
  • vue2混入声明组件、交互流程
  • vivado里的LUT、LUTRAM、FF、BRAM、DSP、IO、BUFG、MMCM资源介绍
  • QXlsx Qt操作excel(1)
  • 压力测试工具-Jmeter使用总结
  • 【js逆向】scrapy基础