Django项目部署-uWSGI

news2024/9/30 17:56:07

Django项目部署-uWSGI

    • Django运维部署框架
      • 整体部署架构
      • web服务器与web应用服务器的区别
      • 部署环境准备
        • 安装python3
        • 安装mariadb
        • 安装Django和相关模块
      • Django托管服务器uWSGI
        • 使用uWSGI
          • 配置
          • 使用

Django运维部署框架

整体部署架构

在这里插入图片描述

操作系统: Linux 。优势:生态系统丰富,程序支持度高,如docker在linux的性能就比在windows好

数据库: Mariadb / Mysql。优势:开源,性能强劲的关系型数据库

前端web服务器: Nginx

后端app服务器: uWSGI

web服务器与web应用服务器的区别

Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。web服务器专注http请求的处理与返回,通用性,如nginx和apache可以处理所有http请求然后返回静态文件内容

Web应用服务器是通过很多协议来为应用程序提供(serves)商业逻辑,具备解释服务端代码能力。Web应用服务器专注程序框架和动态内容的处理,专用性,如tomcat只能处理java程序而不能处理python程序

简单归纳一下两者的区别: web服务器专注提供静态文件内容,web应用(app)服务器专注提供动态内容

常见的 web服务器 、web应用服务器

软件名词是否Web服务器是否app服务器
IIS
Nginx
Apache
Tomcat
Jetty
WebSphere
WebLogic
uWSGI

部署环境准备

安装python3

卸载原有Python3

whereis python3 |xargs rm -frv

重新安装python3,新建一个脚本文件

CentOS7-installpython3.sh

#!/bin/sh
yum groupinstall -y "Development tools"
yum install -y sqlite-devel ncurses-devel ncurses-libs zlib-devel mysql-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl-devel libffi-devel
curl -O -sSL https://npm.taobao.org/mirrors/python/3.8.10/Python-3.8.10.tar.xz && xz -d Python-3.8.10.tar.xz && tar xvf Python-3.8.10.tar
cd Python-3.8.10
./configure
make&& make install
cd ..
rm -rf Python-3.8.10 Python-3.8.10.tar.xz

执行该脚本

安装mariadb

可参考该篇文章:https://blog.csdn.net/qq_44614026/article/details/128735494?spm=1001.2014.3001.5502

安装Django和相关模块

导出项目需要安装的模块:pip freeze > requirements.txt

安装需要的模块:pip install -r requirements.txt

python manage.py runserver 检查django相关的模块是否安装好

Django托管服务器uWSGI

uWSGI(Web Server Gateway Interface)

  • WSGI是Web服务器网关接口。属于web服务器和应用程序之间的通信协议
  • uwsgi协议是uWSGI服务器使用的本地协议。它是一个二进制协议,可以携带任何类型的数据。属性线路协议。
  • uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议。比如把HTTP协议转化成WSGI协议,让Python可以直接使用。

uWSGI文档中文版:https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Download.html

使用uWSGI

配置

安装 pip install uwsgi

在项目根目录下创建一个uwsgi.ini文件

[uwsgi]
chdir =/data/project/autotpsite/
// 项目根目录
module = autotpsite.wsgi:application
// 指定wsgi模块下的application对象
http = 0.0.0.0:8888
// 对本机8888端口提供服务
master = true
// 主进程
pidfile = /data/project/autotpsite/uwsgi8888.pid
// pid 文件,用于脚本启动,停止该进程
daemonize = /data/project/autotpsite/uwsgi_server.log
// 日志文件

sqtp应用目录下的apps.py文件下增加path配置

from django.apps import AppConfig


class SqtpConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'sqtp'
    path = './autotpsite/sqtp'   # 增加path配置
使用
启动: uwsgi xxx.ini   #   ini是配置文件,保存启动项参数
重启: uwsgi –-reload   xxx.pid   # pid是进程文件
停止: uwsgi --stop     xxx.pid

执行命令uwsgi uwsgi.ini,会提示[uWSGI] getting INI configuration from uwsgi.ini,说明读取配置文件启动成功

在这里插入图片描述

通过ls命令,可以看到项目根目录下生成了uwsgi8888.piduwsgi_server.log文件

在浏览器中输入IP:8888/login.html,如果展示登录页面,说明项目部署成功

后续使用,如果出现-bash: uwsgi: command not found

则需要对uwsgi创建软连接

find / -name uwsgi	
# 找到uwsgi执行位置
/usr/local/python3/bin/uwsgi	
# uwsgi所在位置
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
# 建立软链接

软连接起作用后,uwsgi命令可正常使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NC113 验证IP地址

验证IP地址_牛客题霸_牛客网 描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1&#…

苹果手机怎么下载手机铃声?图文教程,快速学会

很多小伙伴喜欢使用苹果手机,可是苹果手机里的铃声自己并不是很喜欢听,想要下载一些好听的歌曲更换自己的手机铃声。苹果手机怎么下载手机铃声?别着急,今天小编以图文的方式,教教大家如何使用苹果手机下载手机铃声。 苹…

验证码绕过与识别

目录 验证码绕过 前言 删除cookie绕过 未销毁复用验证码 验证码识别 工具 使用流程 验证码绕过 前言 之前pikachu靶场有两道验证码绕过的题目,分别是(on client 前端验证验证码)和(on server 未销毁复用验证码),具体见下面的文章 Pikachu靶场…

IDEA热部署JRebel 插件

JRebel 是什么? 在我们的日常开发工作中,一般是都是 IDEA + Tomcat 部署运行 web 项目。项目运行之后,如果你修改了 Java 代码,想要生效就必须得重启 Tomcat 服务器才行。改一次代码就要重启一次,真的是太麻烦了,这会严重影响我们的开发效率。 那么有没有什么办法让我们不…

c语言入门-4-常量

c-常量正文字面常量1、字面常量2、const修饰的常变量3、#define 定义的标识符常量4、 枚举常量深度解析1 什么是常量2 常变量为什么不能定义数组的长度3 枚举的作用是什么4、C语言为何需要枚举?下一篇正文 变得量叫变量,不变的量叫常量 字面常量 1、字…

1. QSaveFile和QFile的简单使用

1. 说明 QSaveFile和QFile两个类都是用来操作文件的,区别在于QSaveFile在对文件进行写入时有一种保护机制,再写入出错时,不会对源文件中的内容进行操作。该类在执行写操作时,会先将内容写入到一个临时文件中,如果没有…

Flink Checkpoint 中的Aligned Checkpoint 和 Unaligned Checkpoint

文章目录知识点反压CheckpointBarrierAligned CheckpointUnaligned Checkpoint核心思想实现原理UC同步阶段UC异步阶段知识点 反压 反压是流式系统中关于处理能力的动态反馈机制,并且是从下游到上游的反馈,一般是在实时数据处理的过程中,上游…

Java POI导出之数据验证

Java POI导出之数据验证 maven 依赖 这里用的是apache.poi, 没有使用EasyExcel <!-- poi依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency&…

如何运维多集群数据库?58 同城 NebulaGraph Database 运维实践

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SktQW2qn-1676450580889)(https://www-cdn.nebula-graph.com.cn/nebula-website-5.0/images/blogs/58.%20Com%20Inc/58%E5%90%8C%E5%9F%8E_%E7%94%BB%E6%9D%BF%201.jpg)] 图计算业务背景介绍 我们为什…

jsp游戏门户网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 游戏门户网站系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

简单易用的图片缩略图处理库

哈喽&#xff0c;大家好&#xff0c;我是源小北。 最近在工作中&#xff0c;刚好有遇到对图片进行缩放处理的功能。于是&#xff0c;便拿起很久以前使用过的Java原生工具类处理图片&#xff0c;不过在开发过程中也发现了一些问题。 在Java中&#xff0c;原生的处理图片缩略图…

浅聊一下,可中断锁(ReentrantLock)

前言 今天早上上厕所&#xff0c;上的我痔疮犯了&#xff0c;屁股一坐下去就感觉一根针在刺我&#xff0c;得的是外痔&#xff0c;之前还坚持用痔疮膏来着&#xff0c;但是感觉涂药的那个姿势以及位置我实在无法忍受&#xff0c;就把它给断了&#xff0c;到头来还是屁股糟了罪&…

工程监测多通道振弦模拟信号采集仪VTN参数修改

工程监测多通道振弦模拟信号采集仪VTN参数修改 1 使用按键修改参数 使用按键修改某个参数的方法如下&#xff1a; &#xff08;1&#xff09;在系统参数查看页面&#xff08;PXX 页面&#xff09;&#xff0c;按【SWITCH】或【SETTING】按键切换到要修改的参数项。 &#xff08…

蓝库云|8项关键让你看透企业「数字转型」,零代码是惊喜

各行各业都要面对的多方竞争力及不断上涨的经营成本&#xff0c;以及随着时代的发展&#xff0c;有不少企业纷纷推动数字化转型&#xff0c;考虑藉着应用现代化的数据和科技工具的结合&#xff0c;协助企业创造新的营运模式及收入来源&#xff0c;以提升自动化效率、优化客户体…

用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SpringBoot 文件上传后查看404的问题和解决404后需要访问两次才能查看的问题

文件上传、图片上传的实现见这个&#xff1a; SpringBootVue 实现头像上传功能_Teln_小凯的博客-CSDN博客 在实现上面的功能后&#xff0c;发现查看图片的时候提示404&#xff0c;解决这个方法如下&#xff1a; 1、配置资源静态文件映射 第一个参数是页面请求的地址&#x…

ChatGPT 整合到Laravel项目中使用

之前写的《ChatApI 本地如何调用》是直接下载ChatGPT SDK当做单独项目开发使用的&#xff0c;这次写的是整合到当前项目中使用ChatGPT 合并为一个项目去使用&#xff1b;具体操作方法也有一定区别。 目录 1.安装ChatGPT SDK 2.加载ChatGPT类库 3.安装guzzlehttp 4.代码实操…

【近似算法】—0-1背包问题的近似算法

【近似算法】—0-1背包问题的近似算法Approximation Schemes(近似方案)PTAS&#xff08;Polynomial time approximation scheme&#xff09;定义&#xff1a;FPTAS&#xff08;Fully polynomial time approximation scheme&#xff09;定义&#xff1a;PPTAS&#xff08;Pseudo…

浏览器F12功能详细介绍

哈喽&#xff0c;大家好&#xff0c;我是有勇气的牛排&#xff08;全网同名&#xff09;&#x1f42e; 有问题的小伙伴欢迎在文末评论&#xff0c;点赞、收藏是对我最大的支持&#xff01;&#xff01;&#xff01;。 掌握浏览器调试基本属于开发者必备的技能&#xff0c;熟悉…

Unity 2021 LTS中着色器构建时间和内存使用的改进

随着Unity的可脚本渲染管道(SRP)的可用特性集的不断增长&#xff0c;在构建时处理和编译的着色器变量的数量也在不断增加。除了对更多图形api的持续支持和不断增长的目标平台选择外&#xff0c;SRP的改进还在继续扩展。着色器在初始(“干净”)构建后被编译和缓存&#xff0c;从…