http://c.biancheng.net/view/8256.html

该web站点主要由

  • Ubuntu18.04系统、

  • python3.9.5、

  • Django3.2.3框架、

  • MySQL5.7数据库

  • nginx服务器

搭建

 

1. 部署架构

Django应用部署模板架构如下图:

  • uWSGI用于连接Web服务器(Nginx)和Python应用程序(Django Application)。
  • Nginx做为反向代理,处理Http请求。
  • Django Application为Python后台应用,提供服务。

【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)_django

 

2. 部署流程

服务部署的流程为:

安装相关组件(可选,且只执行一次)->启动Nginx(只执行一次)->下载并解压django项目代码包 ->重新启动服务->服务启动测试

【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)_django_02 ​

 

本章阐述使用一个Demo程序,完成整个部署流程。

  1. 创建Demo程序,项目文件如下图:

    【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)_django_03

  2.  

     

    mysite.ini为uWSGI配置文件,内容如下:

     

[uwsgi]
socket= 127.0.0.1:9092
http = :9091
chdir= /home/djangoTest/mysite
module= mysite.wsgi
master= true
processes= 4
vacuum= true
# 不配置log目录,可能会导致服务访问异常
logto = /home/djangoTest/mysitemylog.log
stats=%(chdir)/mysite/uwsgi/uwsgi.status
pidfile=%(chdir)/mysite/uwsgi/uwsgi.pid

 

其中:

  • socket为uWSGI服务的IP和端口;
  • chdir为Django项目根目录;
  • pidfile为进程ID存储文件,用于停止服务。

 

 

重新启动uWSGI

shell命令如下:

 

if [ -s ${uwsgiPidFilePath} ]
then 
uwsgi --stop ${uwsgiPidFilePath}
sleep 5
fi 
nohup uwsgi --ini ${uwsgiIniFilePath}  &

 

 

 

 

 

 

 

新建主机组

https://support.huaweicloud.com/qs-deployman/deployman_qs_0001.html

【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)_django_04

【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)_django_05

 

一、托管代码到仓库

 

 

Django应用部署模板

https://support.huaweicloud.com/usermanual-deployman/deployman_hlp_1014.html