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

相关推荐

  1. Django权限系统如何使用

    2024-02-01 10:46:03       29 阅读
  2. 部署django

    2024-02-01 10:46:03       21 阅读
  3. django如何使用mysql连接池

    2024-02-01 10:46:03       57 阅读
  4. 【QA】docker-compose-部署django-如何设置自动启动

    2024-02-01 10:46:03       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 10:46:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 10:46:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 10:46:03       87 阅读
  4. Python语言-面向对象

    2024-02-01 10:46:03       96 阅读

热门阅读

  1. C++ 预处理器

    2024-02-01 10:46:03       45 阅读
  2. 如何降低视频RTSP解码延迟

    2024-02-01 10:46:03       59 阅读
  3. 测试pytorch(GPU)安装,并输出版本号

    2024-02-01 10:46:03       59 阅读
  4. 第二章 Redis介绍及安装

    2024-02-01 10:46:03       59 阅读
  5. 人工智能在现代科技中的应用和未来发展趋势

    2024-02-01 10:46:03       66 阅读
  6. vivado 时钟规划

    2024-02-01 10:46:03       52 阅读
  7. C语言-算法-搜索剪枝与记忆化搜索

    2024-02-01 10:46:03       56 阅读