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

2024-01-31 15:52

本文主要是介绍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

这篇关于Ubuntu server如何使用 Daphne + Nginx + supervisor部署 Django的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/664292

相关文章

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

SQL Server中的PIVOT与UNPIVOT用法具体示例详解

《SQLServer中的PIVOT与UNPIVOT用法具体示例详解》这篇文章主要给大家介绍了关于SQLServer中的PIVOT与UNPIVOT用法的具体示例,SQLServer中PIVOT和U... 目录引言一、PIVOT:将行转换为列核心作用语法结构实战示例二、UNPIVOT:将列编程转换为行核心作用语

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

对Django中时区的解读

《对Django中时区的解读》:本文主要介绍对Django中时区的解读方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景前端数据库中存储接口返回AI的解释问题:这样设置的作用答案获取当前时间(自动带时区)转换为北京时间显示总结背景设置时区为北京时间 TIM

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写