参考文章://www.iis7.com/article/130989.htm
修改说明:修改nginx配置部分,更换配置文件内容及路径;从ip访问切换到域名访问
前言
最近博主在开发一个小项目,本机的开发环境是python3.6,因为需要部署到服务器(python2.7)的关系,所以研究了一下,网上大部分的教程是部署在Ubuntu上的,博主使用的是centos7.0,大部分的部署其实都是类似的,这篇博文对完完全全的新手可能会有所帮助,对遇到的一些困惑也可以进行描述。
环境准备
python包安装工具pip : sudo apt-get install pip
virtualenv:为了避免系统环境与应用环境之间的冲突,使用虚拟环境来安装应用的依赖,virtualenv可以为每个python应用创建独立的开发环境,安装方式:sudo pip install virtualenv
虚拟环境使用
flask项目地址:/usr/local/flasky,只需要在项目地址下运行指令:
virtualenv venv
约定俗成一般使用“venv”作为虚拟环境的名称,这样我们就创建了一个虚拟环境的文件夹venv如下图红框所示:
接下来激活虚拟环境,只用指令
source venv/bin/activate
激活虚拟环境后,命令行抬头会有(venv)标识,仅需虚拟环境后,一切安装python的操作都会讲包和引用装在虚拟环境中,不会影响全局的python环境
退出虚拟环境的指令,直接敲:
deactivate
即可退出虚拟环境
配置flask应用环境
flask应用开发的时候,会应用到非常多的模板,“狗书”中有介绍一种比较方便的方式,直接把开发环境的flask依赖等导出为一个txt文件,然后在centos的虚拟环境中使用相应指令根据这个txt文件安装会非常方便。
pip freeze >requerements.txt
该指令导出一个文件名为requirements.txt的文本,里面的内容如下图所示
然后centos中使用以下指令
pip install -r requerments.txt
这样就会在虚拟环境中安装一个与开发环境一致的副本了。
注意一定要在虚拟环境中使用批量安装指令,不然就安装到全局去了,后果还是比较蛋疼的。
安装uWSGI
flask的实际生产运行环境选择不多,比较成熟的是【Gunicorn】和【uWSGI】,这里推荐一本书董伟明的《Python Web开发实战》里面有讲这两种部署。
以下内容来自百度百科:
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
安装指令如下,注意一定要保证已经进入了虚拟环境并激活:
pip install uwsgi
不需要使用sudo ,因为virtualvenv没有权限要求。
上传项目文件
博主使用的linux连接工具是xshell,在之前的一篇文章//www.iis7.com/article/130991.htm中有讲如何上传文件到linux主机,这里不再详细说明,展示一下大概的项目结构以及启动文件manage.py