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

Django项目部署-uWSGI

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 AppConfigclass 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命令可正常使用

相关文章:

Django项目部署-uWSGI

Django项目部署-uWSGIDjango运维部署框架整体部署架构web服务器与web应用服务器的区别部署环境准备安装python3安装mariadb安装Django和相关模块Django托管服务器uWSGI使用uWSGI配置使用Django运维部署框架 整体部署架构 操作系统: Linux 。优势:生态系统丰富&…...

jhipster自动生成java代码的方法

一、前言 java springboot后台项目用到了jpa查询数据库,还用到了jhipster,这个东西可以自动生成基础的Controller、Service、Dao、JavaBean等相关代码,减少重复开发。 在此总结下使用方法。 二、jhipster自动生成java代码的方法 1.需要先…...

LeetCode 82. 删除排序链表中的重复元素 II

原题链接 难度:middle\color{orange}{middle}middle 题目描述 给定一个已排序的链表的头 headheadhead , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,…...

tensorflow gpu环境安装

查看本电脑支持的最高cuda版本:nvidia-smi在~/.condarc修改conda 源:channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- https://mirrors.tuna.tsinghua.edu.cn/…...

如何在现实场景中随心放置AR虚拟对象?

随着AR的发展和电子设备的普及,人们在生活中使用AR技术的门槛降低,比如对于不方便测量的物体使用AR测量,方便又准确;遇到陌生的路段使用AR导航,清楚又便捷;网购时拿不准的物品使用AR购物,体验更…...

操作系统-处理机调度

1.处理机调度的概念、层次1.1调度的基本概念制定某种规则来决定处理任务的顺序。1.2调度的三个层次高级调度(作业调度)中级调度(内存调度)进程的挂起态与七状态模型低级调度(进程调度)小结2.进程调度的时机…...

手机截图如何提取文字?

在当今信息爆炸的时代,图文并茂已经成为了一个广告宣传的常用方式。然而,图片中的文字信息往往难以获取,尤其对于那些需要快速获取信息的人们来说,阅读图片中的文字会是一项繁琐且费时的任务。现在,我们有一个好消息要…...

vue中复制内容

vue中复制内容vue2vue-clipboard2依赖项在main.js引入使用vue3vue-clipboard3依赖项引入使用更新于:2023-02-15vue2vue-clipboard2 依赖项 “vue”: “^2.6.11” “vue-clipboard2”: “^0.3.1” 在main.js引入 import VueClipboard from vue-clipboard2 Vue.us…...

MySQL CAST()函数用法

一、语法 expr:源数据,如字符串’China’。type:目标数据类型,例如CHAR。 cast(expr AS type)二、命令说明 将任何类型的值转换为具有指定类型的值。 CAST()函数通常用于返回具有指定类型的值,以便在WHERE&#xff…...

【测试工程师面试】详细记录 自己的一次面试

【测试工程师面试】详细记录 自己的一次面试 目录:导读 Linux基础 Oracle基础 编程基础 测试的基础 面试的问题 扯闲话部分: 10点刚到,先进行笔试,笔试的题目很基础,涉及到linux,涉及到oracle数据库…...

Elasticsearch 安装(二)

目录前言一、Linux 安装1、下载安装包⑴、选择需要的安装包⑵、下载解压到安装目录2、查看解压后目录结构3、启动 Elasticsearch⑴、正常启动流程⑵、启动过程遇到的问题①、启动报错②、创建运行 Elasticsearch 的用户,启动成功,但无法访问③、停止Elas…...

Java基础:异常与错误(ExceptionError)

1 缘起 某天上网冲浪时,偶然看到一个问题,说Java的Error和Exception有什么区别? 一句话:不知道。并不能很清晰地描述出个中区别。 当然,曾经也看过Throwable相关的知识,但是,并没有通过源码及注…...

VAmPI:一个包含了OWASP Top10漏洞的REST API安全学习平台

关于VAmPI VAmPI是一个包含了OWASP Top10漏洞的REST API安全学习平台,该平台基于Flask开发,该工具的主要目的是通过一个易受攻击的API来评估针对API安全检测工具的有效性,并帮助广大研究人员学习和了解API安全。 功能介绍 1、基于OWASP Top…...

springboot(6)之前端传递参数的方式 普通 集合 数组

实体类传递 首先我们在后端定义一个实体类,通过lombok插件重写 有参 无参 get set toString 方法, 然后前端发送数据,后端就会自动收到,然后属性填写 后端代码如下 AllArgsConstructor Data NoArgsConstructor public class role …...

redis分布式锁的演变过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、直接添加Redis缓存二、使用setnx执行抢锁过程三、setnx获取锁+设置过期时间四、引入UUID解决误删锁问题五、引入Lua脚本来做删除六、对递归部分优化进行自旋七、添加自旋次数八、改为重入锁,使…...

leaflet 修改popup的样式,个性化弹窗(069)

第069个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中修改popup组件的样式,个性化弹窗。主要方法是更改css, 中增加custom-popup类名,style的样式要做穿透处理 >>>.具体方法请参考源代码。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实…...

注解ConfigurationProperties、EnableConfigurationProperties的用法

1 ConfigurationProperties ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 ,通过指定的前缀,来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换,能够管理一个类别的所有配置信息&…...

自适应布局之淘宝无限适配+rem+微信rpx自适应

一、自适应布局 所谓前端适配,就是为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,目前比较流行的方法有两种。一种是强制meta viewport宽度为设计稿宽度,一种是使用rem自适应布局的flexible.js。 二、当前流行的移动端自适应…...

esxi不能识别不兼容网卡解决方案

相信很多网友在安装测试VMWARE Esxi 6.0的时候,总会遇到无法兼容网卡的情况,本人也是遇到了再组装的台式机上测试ESXI 6.0的时候,无法识别REALTEK RTL 8111E的情况。 找了很多网友提供的博客,方法是正确的,但是不够严…...

Sizeof与Strlen的区别与联系

16年写了很多 C 与 C 相关的文章,但是后面从事了 Android 开发,就全部删掉了,无意中发现了这篇由还存在草稿箱,索性就找回来吧,也是追忆当年学习的青葱岁月 Sizeof与Strlen的区别与联系 一、sizeof sizeof(…)是运算…...

2026点评餐饮数据

数据名称:大众点评美食(餐饮)数据、美团商家全量数据、大众平台综合数据 数据时间:2026年最新爬虫数据,美食商家全品类商家全覆盖,同步平台最新信息,不拿旧数据充数 数据分类:上百个…...

三指拖拽革命:在Windows上解锁macOS级触控板体验的终极指南

三指拖拽革命:在Windows上解锁macOS级触控板体验的终极指南 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersD…...

面向密集预测任务的神经网络架构搜索:从原理到工程实践

1. 项目概述与核心价值“神经网络架构搜索在密集预测任务中的应用与优化”,这个标题听起来很学术,但背后其实是我们这些在一线搞计算机视觉、图像分割、深度估计的工程师和研究员们每天都在琢磨的“硬骨头”。简单来说,它探讨的是如何让机器自…...

LiteLoaderQQNT插件加载器:从简单加载到企业级插件生态的完整进化指南

LiteLoaderQQNT插件加载器:从简单加载到企业级插件生态的完整进化指南 【免费下载链接】LiteLoaderQQNT QQNT 插件加载器:LiteLoaderQQNT —— 轻量 简洁 开源 福瑞 项目地址: https://gitcode.com/gh_mirrors/li/LiteLoaderQQNT LiteLoaderQQ…...

Arm嵌入式编译器C/C++库架构与优化实践

1. Arm嵌入式编译器C/C库架构解析 1.1 运行时库体系结构 Arm Compiler for Embedded提供完整的C/C标准库实现,其架构设计遵循分层原则: 基础层 :ISO C99标准库(libc)提供字符串处理、内存管理、数学运算等基础功能 …...

用Google Earth Engine (GEE)复现论文:Landsat8波段组合如何影响土地覆盖分类精度?

基于Google Earth Engine的Landsat8波段组合优化实验:从理论到实践 在遥感影像分析领域,波段选择一直是影响分类精度的关键因素。传统方法往往直接使用所有可用波段作为输入特征,却忽视了波段间可能存在的冗余信息。本文将通过Google Earth E…...

AI智能体开发工具栈全解析:从框架、可观测性到部署实战指南

1. 项目概述与核心价值如果你正在构建AI智能体应用,并且已经厌倦了在GitHub、Twitter和各种技术论坛里大海捞针般地寻找合适的开发工具,那么你很可能已经遇到了一个共同的痛点:生态碎片化。从让大语言模型(LLM)具备“记…...

从样式覆盖到版本升级:全面解析Antd表格固定列对齐问题的解决路径

1. 问题复现:当Antd表格固定列开始"跳舞" 第一次遇到Antd表格固定列错位问题时,我正喝着咖啡调试一个后台管理系统。突然发现表格右侧的固定列像被施了魔法——表头和内容列完全错开,活像跳着蹩脚的探戈。这种问题在Antd 3.x版本中…...

阴阳师御魂自动刷脚本:5分钟快速上手的智能挂机指南

阴阳师御魂自动刷脚本:5分钟快速上手的智能挂机指南 【免费下载链接】yysScript 阴阳师脚本 支持御魂副本 双开 项目地址: https://gitcode.com/gh_mirrors/yy/yysScript 还在为重复刷御魂副本而感到疲惫吗?yysScript智能挂机脚本是专为《阴阳师》…...

《凰标》与《第一大道》:同一宇宙下的龙凤双璧@凤凰标志

龙凤双璧:海棠山铁哥文学宇宙宣言——《第一大道》《凰标》世界观联动白皮书一、时代之问:当网文只剩“单兵”市场痛点铁哥答案单兵叙事双IP共生世界观割裂同源宇宙IP不成体系闭环叙事 二、宇宙基石:一破一立的双璧格局 #mermaid-svg-A2eFhZn…...