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

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

admin2周前 (06-06)AI娱乐29

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://www.kejiyl.com/post/3909.html

分享给朋友:

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

揭秘 AI 音乐生成背后的复杂算法原理

揭秘 AI 音乐生成背后的复杂算法原理

在当今数字化的时代,AI 音乐生成技术正逐渐走进我们的生活,为我们带来了前所未有的音乐创作体验。那么,究竟是什么样的复杂算法原理在背后驱动着 AI 音乐的生成呢?我们要了解到 AI 音乐生成通常基于深度学习算法。深度学习中的神经网络是其核心组成部分,其中循环神经网络(RNN)和长短时记忆网络(LST...

解读 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 技术的发展如同一股汹涌的浪潮,正在各个领域掀起变革。其中,AI 在文学创作领域的应用,尤其是在历史题材小说的创作中,展现出了巨大的潜力和广阔的前景。AI 创作历史题材小说,首先是一次对历史的重新审视和解读。通过对大量历史资料的学习和分析,AI 能够挖掘出那些被遗忘或被忽视的...