Django项目如何实现uwsgi + Nginx保姆级部署

  介绍

这篇文章主要讲解了Django项目如何实现uwsgi + Nginx保姆级部署,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

最近在学习Django的过程中,用Django做了一个小演示,所以试试看能不能部署到服务器上,自己顺便也熟悉一下Django整个部署的流程,因为之前学习烧瓶的时候,就使用的uwsgi来作为python web服务器来部署的,所以这次也就选择了Nginx + uwsgi这样的一个组合。

当时买完云服务器之后,就顺手把宝塔装上了,之前用宝塔部署php项目是真的很容易,所以就偷懒试试宝塔能不能部署Django,苦试一个小时,无果,遂放弃,还是老老实实用原生的uwsgi配合Nginx来部署吧。然后下面的流程我会争取把有可能是坑的地方重点标注出来,将来如果发博客或者自己需要再次部署的时候,也可以少写很多配置文件。

<代码>系统版本:centos7.5

<代码> python代码版本:3.6.5

<代码> Nginx>

<代码> uwsgi>

如环境不同,还请查阅其他资料另行配置。

在部署之前,请确保你的linux服务器正确安装了对应的python版本,如果需要python3版本,请自行查阅资料进行升级安装。

首先为了更好的独立部署,避免对其他的项目产生干扰,我们需要安装python虚拟环境:

 sudo pip安装virtualenv
  sudo pip安装virtualenvwrapper 

virtualenvwrapper是virtualenv的扩展管理包,可以将所有的虚拟环境整合在一个目录下。

<强>配置虚拟环境:

 mkdir ~/.virtualenvs 

打开。bashrc: (

 sudo vim ~/. bashrc 

在。bashrc的(末尾增加下面内容:

出口WORKON_HOME=$ HOME/irtualenv #所有虚拟环境存储的目录
  源/usr/local/python3/bin/virtualenvwrapper.sh 

注意!:这里的/usr/地方/bin/virtualenvwrapper.sh只是针对于我当前系统环境的一个位置,并不是所有的服务器都是在这个位置,如果自己不知道virtualenvwrapper.sh在哪里,可以搜索文件来找到它在系统中的位置,并且修改。bashrc。

(启用配置文件:

 

这个时候如果不报的错,就代表我们的虚拟环境配置成功了,一般常见的报错就是virtualenvwrapper。上海文件找不对。

创建虚拟环境:

找一个你自己觉得能记住的地方,新建一个env文件夹:

 cd/www
  mkdir env
  cd env #进入env目录

新建一个虚拟环境:

 mkvirtualenv - p/usr/bin/python3 orange_env # my_env是虚拟环境的名称

注意:如果你的软连接/usr/bin/python3没有的话,会报错误,找不到/usr/bin/python3,这个时候就需要你自己新建一个软连接:

如果报错:

ln - s/usr/local/python3/bin/python3/usr/bin/python3 #路径要改成自己的python安装路径

之后便可以进入我们的虚拟环境了:

源/www/env/orange_env/bin/激活

进去虚拟环境之后,前面会出现一个括号,里面是你虚拟环境的名字:

(orange_env) [root@iz2ze1cvux96riiwfh05qqz ~] #

在虚拟环境中安装uwsgi:

pip安装uwsgi

退出虚拟环境:

停用

再次在主环境中安装uwsgi:

pip安装uwsgi

注意:如果你有其他的依赖,比如django, msqlclient这些,记得一定要在虚拟环境里pip安装一下。

找一个你认为比较合适的地方,新建一个文件夹,将你的django项目上传进去:

以我为例:

 cd/www
  mkdir橙色

上传解压操作,略记得是上传项目根目录,就是直接带管理。py的那个目录。

新建一个uswgi配置文件,uswgi支持多种配置文件类型,比如yaml、xml、json、ini,这里我选的是xml。

vim mysite。xml #记得mysite。xml要和你项目的管理。py在一个目录下。

mysite。xml内容如下:

& lt; uwsgi>   & lt; socket> 127.0.0.1:8080 & lt; !——内部端口,自定义——比;   & lt; chdir>/www/橙色/& lt;/chdir> & lt; !——项目路径——比;   & lt; module> orangeproject.wsgi& lt; !——一般模块名项目名+ wsgi——比;   & lt; processes> 4 & lt;/processes>& lt; !——进程数——比;   & lt; daemonize> uwsgi.log & lt; !——日志文件——比;   & lt;/uwsgi>

<强>安装Nginx:

Django项目如何实现uwsgi + Nginx保姆级部署