1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

时间:2024-06-01 08:57:58

相关推荐

华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

华为云服务器(CentOS 7.5)Django项目上线部署(Nginx+uWSGI+Django)

《玩转Django 2.0》书中的项目“我的音乐”做好了,然后去服务器部署项目。这个过程中遇到过很多问题,的双十一周末都花在这上面了。网上看过很多教程,走过很多弯路,心累!还好网站已经搭建出来了: .cn

霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光!

部署前,首先了解下项目流程和每个组件的用途,很重要哦!

项目流程:

1、首先客户端(如浏览器)请求服务资源。

2、nginx作为直接对外的服务接口,接收到客户端发过来的http请求,会解包、分析。

3、如果是静态文件请求,就根据nginx配置的静态文件目录,返回请求的资源。

4、如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;uWSGI将接收到的包进行处理,并转发给wsgi。

5、wsgi根据请求调用django工程的某个文件或者函数,处理完后django将返回值交给wsgi。

6、wsgi将返回值进行打包,转发给uWSGI。

7、uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。

注:不同的组件之间传递信息涉及到数据格式和协议的转换。

用途:

1、第一级的nginx并不是必须的,uWSGI完全可以完成整个的和浏览器交互的流程。

2、在nginx上加上安全性和其他限制,可以达到保护程序的作用。

3、uWSGI本身是内网接口,开启多个work和processes可能也不够用,而nginx可以代理多台uWSGI完成uWSGI的负载均衡。

4、django在debug=False下对静态文件的处理能力不是很好,而用nginx来处理更加高效。

1、安装Python 3

CentOS 7 系统默认安装Python 2.7,但Django 2.0以上的版本不支持Python 2.7版本,因此需要我们在CentOS 7 系统中安装Python 3版本。Python 3.7安装过程中执行make install 命令后,结尾会有错误,显示pip、setuptools会安装失败,自己再去安装这些工具有点麻烦,所以用Python 3.6。

在安装Python 3.6之前,我们需要分别安装Linux的wget工具、GCC编译器环境以及Python 3 使用的依赖组件。

1.1、相关的安装指令如下

1. 安装Liunx的wget工具,用于网上下载文件yum -y install wget2. GCC编译器环境,安装Python 3 时所需的编译环境yum -y install gcc3. Python 3 使用的依赖组件yum install openssl-devel bzip2-level expat-devel gdbm-devel readline-devel sqlite*-devel mysql-devel4.安装编译环境(非必需,为了减少后续安装错误)yum groupinstall Development Tools5. 安装libffi-devel依赖包,解决python3.7以上版本提示ModuleNotFoundError: No module named \_ctypes\yum install libffi-devel -y

1.2、Python 3.6.3 安装

1. 安装包下载:wget /ftp/python/3.6.3/Python-3.6.3.tgz2. 解压安装包:tar -zxvf Python-3.6.3.tgz,生成Python-3.6.3文件夹3. 进入Python-3.6.3文件夹:cd Python-3.6.34. 将Python-3.6.3 编译到CentOS 7中:# 依次输入编译命令,指定位置安装python3.6.3./configure --prefix=/usr/local/python3makemake install

1.3、Python 3.6.3 建立软连接并加入PATH环境变量中

这一步很坑,Linux基础不熟,浪费了自己很多时间。切记小心!

# 查看/usr/bin中所有python文件的详细信息ls -l /usr/bin/python*

由上图可知,系统中默认的python版本是2.7,为了不影响yum插件,因为yum插件(python写的工具)使用的是python2.7。所以对于系统默认的python版本,我们不做变动。

1、建立新的软连接python3和pip3

# python 3.6 和 python3建立软连接ln -sf /usr/local/python3/bin/python3.6 /usr/bin/python3# pip3.6 和 pip3 建立软连接ln -sf /usr/local/python3/bin/pip3.6 /usr/bin/pip3# 升级pip3到最新版pip3 install --upgrade pip

由上图所示,建立连接后,系统中就有两个版本的python了。安装模块时,切记需要弄清楚安装在哪个环境。如果是2.7版本,就用pip/pip2;如果是3.6版本,就用pip3。

通过指令:python,可以进入旧版2.7的交互环境;通过指令:python3,可以进入新版3.6的交互环境。

2、新版python3加入环境变量PATH中

vi /etc/profile//编辑profile文件# 在profile文件底部加入该行,即python安装目录的bin目录export PATH=$PATH:/usr/local/python3/binsource /etc/profile//让修改立即生效

加入环境变量中的作用在于,执行python程序的时候,就会使用该版本的python环境。

2、安装mysql 8.0.13

2.1、下载MySQL二进制文件

地址:/downloads/file/?id=480751

下载后将mysql-8.0.13-linux-glibc2.12-x86_64.tar文件,通过xftp工具上传到阿里云服务器上,路径为:/usr/local/software。路径自选,随意。

2.2、 安装mysql,初始表

1、安装前检测系统是否自带安装了mysql

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。