当前位置:首页 > AI娱乐 > 正文内容

Ubuntu+Nginx+uwsgi 部署 django 项目教程

admin3天前AI娱乐11

Ubuntu+Nginx+uwsgi 部署 django 项目教程

相较于学习过程,部署环节往往显得更为复杂,尤其是对于那些自学之士,他们对Linux系统的命令行操作不够熟悉,有的甚至从未接触过服务器,这恐怕让许多人望而却步!我当初在学习过程中也遇到了同样的困境!

自学在我看来实在是一项充满魅力的事情,尽管过程中可能会遇到不少曲折nginx check status,但这些曲折难道不是成长和财富的积累吗?人生路途亦是如此,那些一心想走捷径的人往往最终走了弯路。以马云为例,在他取得成功之前,也曾遭遇过无数的挫折,但他始终勇敢地面对挑战。

自学习编程,请做到以下这三点:

一、学会总结归纳问题,并养成做笔记的习惯

二、出现问题,学会利用搜索引擎去搜索问题

若你对此尚不熟悉,不妨先模仿示例nginx check status,将所需功能实现,随后再深入探究那些抽象的以及你不了解的知识点。

好了,开始我们今天的正题,部署我们已经用开发好的博客项目!

部署之前需要做的几件事

注意:以下几件事都必须在激活虚拟环境下完成

执行该指令可列出项目所需依赖,随后将在项目主目录中自动创建一个.txt格式的文档。

使用pip3命令,将当前环境中已安装的所有包的名称和版本信息输出,并将这些信息保存至名为requirements.txt的文本文件中。

读取.txt文件,并安装项目依赖命令!

使用pip3命令,按照requirements.txt文件中的依赖列表,进行安装操作。

2. 搜集项目的静态文件

在项目的配置文件.py文件中添加添加静态文件路径

静态资源根目录设置为 /var/www/django-blog/static/。

这将会把所有的静态文件拷贝至配置的路径!

解决服务器的问题

学习阶段我们需要买一个云服务器吗?

若条件允许,我建议您考虑购置一台入门级的设备。实际上,这笔开销并不大Ubuntu+Nginx+uwsgi 部署 django 项目教程,通常在促销活动中,诸如阿里云等平台的价格会相当优惠。不过,购买服务器并非强制要求,我们完全可以在个人电脑上部署虚拟机来模拟服务器进行学习。通常,我们会安装Linux或系统,而虚拟机的运行也相当简便!

请问虚拟机在哪里可以找到?还有nginx check status,如何将liu,nx系统安装在虚拟机中?请参考自学编程教程中的第二部分,自行探索并解决这两个疑问!

如何在本地链接到服务器?

通常我们使用的开发系统版本为10,至少对我来说是这样的,对于使用土豪级Mac的用户请忽略,但前提条件是,这一版本首先需要被安装。

win10 安装教程:

使用编辑器链接远程服务器

一、安装扩展

本身就支持远程开发,请安装下边这个扩展!

Ubuntu+Nginx+uwsgi 部署 django 项目教程 第1张

二、添加远程服务器连接

Ubuntu+Nginx+uwsgi 部署 django 项目教程 第2张

三、保存服务器配置文件

Ubuntu+Nginx+uwsgi 部署 django 项目教程 第3张

安装Nginx

sudo apt-get install nginx

执行nginx版本查询:输入命令“nginx -v”,观察输出的nginx版本信息;若显示规范格式,例如“nginx : nginx/1.18.0 ()”,则表明安装无误!

nginx常用命令:

开启nginx服务:执行nginx start;终止nginx服务:运行nginx stop;重新启动nginx:操作nginx重启;重新加载nginx配置文件:执行nginx重载;检查nginx运行状态:使用nginx查看状态;安装git软件并同步项目代码:执行安装git并克隆项目操作。

安装git,请参考这篇文章:

一、进入Nginx用来默认放置网站的文件夹

cd /var/www

二、克隆项目到该文件夹

克隆代码,请访问网址https://gitee.com/qbiancheng/django-blog.git,执行git clone命令。

三、创建虚拟环境

python3 -m venv venv

四、激活虚拟环境

linux: . venv/bin/activate

Ubuntu+Nginx+uwsgi 部署 django 项目教程 第4张

在Windows系统中,请进入venv文件夹,然后运行Scripts子文件夹中的activate命令。

五、安装依赖

使用pip3命令,按照requirements.txt文件中的依赖列表,执行安装操作。

安装uwsgi

linux-安装uwsgi

对于 .x 版本

使用sudo命令,执行apt-get工具,进行python3-dev软件包的安装操作。
使用sudo命令,执行apt-get工具,进行python3-pip的安装操作。
sudo pip3 install uwsgi

创建uwsgi配置文件

在项目文件夹中新建一个文件,并命名为“uwsgi.ini”。

cd /var/www/django-blog
makdir deploy
cd deploy
touch uwsgi.ini

使用vim编辑器打开名为uwsgi.ini的配置文件,将以下内容复制进去,然后对其进行必要的调整。

# 配置域应该是uwsgi,记住这个不能丢,否则会报错
[uwsgi]
在使用uwsgi进行监听时,可以指定为socket文件或IP地址加端口号的组合。若配置nginx,则应选择socket配置;若直接运行,则应选择http配置,具体为http-socket设置为127.0.0.1:8080。
socket    = 127.0.0.1:8001
#指定项目的目录,在app加载前切换到当前目录
chdir 指令对应的路径是 /www/wwwroot/django-blog。
Django项目中的wsgi文件,其作用是负责导入并执行位于blog2目录下的wsgi.py模块。
模块定义等于我的网站下的WSGI配置
# Python虚拟环境的路径
home路径等于/www/wwwroot/django-blog/venv
# master 启动主进程。
master   = true
# 最大数量的工作进程数
processes   = 10
# 指定工作进程中的线程数
threads = 2
# 设置socket的权限
chmod-socket    = 664
在用户退出程序时,是否应当进行环境清理,并自动删除Unix套接字以及进程ID文件?
vacuum          = true
#日志文件路径
daemonize命令对应的是位于/www/wwwroot/django-blog/deploy目录下的uwsgi.log文件。

创建项目nginx的配置文件

进入:cd /etc/nginx/sites-

创建:touch blog

使用vim文本编辑器打开您刚刚建立的博客文件,随后按照注释中的详细指导Ubuntu+Nginx+uwsgi 部署 django 项目教程,将相应内容逐一输入进去。

# 配置文件内容:
在转发至哪个服务器的问题上,我们可以通过设置nginx的upstream配置项来达成负载均衡的效果。
upstream django {    
服务器地址为127.0.0.1,端口号设定为8001;请注意,此端口号需与uwsgi配置中的端口号相匹配。
    server   127.0.1.1:8001;
}

Ubuntu+Nginx+uwsgi 部署 django 项目教程 第5张

配置虚拟主机时,一个HTTP配置文件中可以包含多个server块。 server { # 启动的nginx进程监听请求的端口 listen 80; #定义使用域名访问 server_name 192.168.11.106; charset utf-8; # max upload size 客户最大体量设置为75兆字节;请根据实际情况进行调整。 # location 配置请求静态文件多媒体文件。 location /media { 别名指向 /www/wwwroot/django-blog/media/ 目录; } # 静态文件访问的url location /static { # 指定静态文件存放的目录 设置别名,指向路径,即 /www/wwwroot/django-blog/static/; } # 将所有非媒体请求转到Django服务器上 location / { 该请求参数涉及uwsgi,其路径设定为qmblog_uwsgi_params的绝对路径。 包含路径 /www/wwwroot/django-blog/deploy/params; # 转交请求给uwsgi # uwsgi_pass 127.0.0.1:8000; uwsgi_pass django; 这个Django配置指向的是起始位置的设置,它会将动态请求转发至本机的特定端口,即uwsgi所监听的端口。该端口上运行着uwsgi进程,其主机地址和IP地址,我们将在后续步骤中在本机的该端口上启动uwsgi服务。 若直接通过网址http://www.xxx.com进行访问,所指向的将是位于static文件夹中的index.html或index.htm页面,此类配置通常用于实现首页的静态化处理。 在根目录下,位于src文件夹的www子文件夹中,存在一个名为CainiaoBlog的静态资源文件夹,其路径为/root/src/www/CainiaoBlog/static/。 #index index.html index.htm; } 精确匹配与上方所述的斜杠/不同,当访问http://www.xxx.com时,该请求会依据此配置被转发至另一台nginx服务器。 将静态首页的服务器进行更换。与之前的访问index.html操作一致,需在另一台服务器上,使用相同的配置文件进行整合。 # location = / { 禁止将流量转发至指定IP地址和端口号。 # } }

最后,重启nginx,具体请参考nginx常用命令!

启动uwsgi服务

备注:请务必在激活虚拟环境下运行

cd /var/www/django-blog
uwsgi --ini deploy/uwsgi.ini

当出现类似“INI from /uwsgi.ini”这样的指令提示时,表示启动操作已经顺利完成,您可以直接打开浏览器进行访问。

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由前沿科技娱乐汇发布,如需转载请注明出处。

本文链接:https://kejiyl.com/post/3909.html

分享给朋友:

“Ubuntu+Nginx+uwsgi 部署 django 项目教程” 的相关文章

AI 音乐如何推动音乐教育的创新与普及

AI 音乐如何推动音乐教育的创新与普及

在当今数字化的时代,AI 技术正以其强大的能力和广泛的应用,深刻地影响着各个领域,其中也包括音乐教育。AI 音乐为音乐教育带来了前所未有的创新与普及契机,正在重塑音乐教育的格局。AI 音乐在教学资源方面推动了创新。传统的音乐教育往往依赖于有限的教材、教师的个人经验和有限的音频资源。而 AI 可以生成...

AI 创作小说的质量评估标准探讨

AI 创作小说的质量评估标准探讨

在当今数字化时代,AI 创作小说正逐渐成为文学领域的一个重要现象。随着人工智能技术的不断发展,AI 能够生成各种风格和类型的小说,这引发了人们对于 AI 创作小说质量的关注和探讨。本文将深入探讨 AI 创作小说的质量评估标准,以帮助读者更好地理解和评价 AI 创作的小说作品。一、情节合理性情节合理性...

AI 小说创作对文学教育的影响与启示

AI 小说创作对文学教育的影响与启示

在当今数字化时代,AI 技术的飞速发展给各个领域都带来了深远的变革,文学教育也不例外。AI 小说创作作为 AI 技术在文学领域的应用之一,正逐渐引起人们的关注,并对文学教育产生了多方面的影响与启示。AI 小说创作的出现,为文学教育提供了新的教学资源和工具。传统的文学教育主要依赖于经典文学作品,但这些...

AI 生成音乐的社交互动属性探索与实践

AI 生成音乐的社交互动属性探索与实践

在当今数字化的时代,音乐的创作与传播方式正经历着前所未有的变革,AI 生成音乐作为其中的新兴领域,不仅在技术层面展现出巨大的潜力,其社交互动属性也逐渐成为人们关注的焦点。AI 生成音乐为音乐创作带来了全新的思路和可能性。通过机器学习算法和大量的音乐数据训练,AI 可以创作出风格各异、富有创意的音乐作...

AI 驱动的游戏 NPC:如何与玩家实现深度互动

AI 驱动的游戏 NPC:如何与玩家实现深度互动

在当今的游戏世界中,AI 技术的应用使得游戏 NPC(非玩家角色)变得越来越智能和生动。这些 AI 驱动的 NPC 不仅能够提供任务和引导玩家,还能够与玩家实现深度互动,为玩家带来更加丰富和沉浸式的游戏体验。那么,AI 驱动的游戏 NPC 究竟是如何与玩家实现深度互动的呢?AI 驱动的游戏 NPC...

游戏设计中 AI 算法如何实现动态难度调整

游戏设计中 AI 算法如何实现动态难度调整

在游戏设计的领域中,动态难度调整是一项至关重要的技术,它能够极大地提升玩家的游戏体验,让游戏在不同玩家手中都能保持恰到好处的挑战难度。而 AI 算法在实现这一功能中扮演着关键的角色。AI 算法通过对玩家行为和游戏状态的实时监测与分析来实现动态难度调整。在游戏开始时,AI 会对玩家的初始技能水平、游戏...