当前位置 主页 > 服务器问题 > nginx问题汇总 >

    centos 7.0 使用Nginx部署flask应用教程

    栏目:nginx问题汇总 时间:2018-09-10 16:19

    这篇文章主要介绍了centos 7.0 使用Nginx部署flask应用教程,需要的朋友可以参考下

    参考文章://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