总的来说学习Flask也有一年多了,学的都是Flask的开发,到现在也有能力开发出中小型的后端项目了。但是所有的教程都没有告诉我到底如何在服务器上部署我们的Flask项目,我总不可能在服务器上用Flask自带的web服务器部署项目吧?这是极其不理智的,所以我查阅了很多资料,试图能够掌握Flask项目在服务器部署的具体方法。
本文章主要分文三个章节,即:①.宝塔环境的搭建;②.Python环境的搭建;③.项目的部署和配置。文章会尽量详细的介绍每个过程的步骤,不光是让大家看懂,同样也是方便以后自己查阅。为了方便教程的进行,我用Flask完成了一个简单的项目-fitstflask,项目只有一个简单的页面,是我写的一首英文小诗,看到的朋友可以点评一下。
项目展示
项目目录结构:
/firstflask:
app.py(项目启动文件,主文件目录)
requirements.txt(项目依赖的软件包)
/static(静态文件目录)
/templates(页面模板目录)
/firstflask_venv(项目的虚拟环境)
本文章主要实现的是基于Centos7.x的环境,实现基于Pyenv+Gunicorn+Gevent+Nginx+Supervisor的Flask项目部署。包括服务器环境的安装,Python环境的配置,Gunicorn的简单配置,Nginx的反向代理配置,Supervisor实现Flask项目的自动启动和项目监控。
宝塔环境搭建
项目是在宝塔环境下搭建的,因为毕竟Linux并不是很熟练,宝塔提供的面板环境可以帮助我们很好的搭建相应的项目环境,例如:Nginx的安装,MySQL的安装,Supervisor的安装...使用宝塔可以简化我们的安装步骤,而且可视化的监控后台也极大的方便了文件配置。并且宝塔提供了Python项目管理器这个软件,可以快速方便的帮助我们部署Flask项目,但是这个软件只支持Centos7.x所以本教程并没有选择用软件部署,而是手动部署。所以本教程同样适用于Debian,Ubuntu...等一系列的系统。
安装宝塔可以参照宝塔官网的文章:宝塔Linux面板安装教程。选择对应的Linux版本的一键安装脚本,全程自动化安装,只需要根据提示操作即可。安装成功之后还需要登录宝塔进行一系列的初始化配置,方便我们下次登录。(PS:阿里云的用户需要进实例安全组把所有的端口打开,把端口权限控制交给宝塔,否则服务会有莫名的错误,其