flask+gunicorn+supervisord+nginx发布多个项目
最近刚开始学flask,仿照写了2个小项目练手,使用flask+gunicorn+supervisord+nginx的方式发布到自己的阿里云服务器上,然后自己总结了一下,与各位初学者分享,有什么不对的,可以留言给我(高手勿喷)。
一、配置supervisord
supervisor主要用于管理我们的应用进程,安装supervisord不多说,按照官网介绍来就行了,这里就贴一下我的配置,在/etc/supervisor/supervisord.conf中配置如下:
开头带;表示注释,如果需要相应的配置文件起作用,可以去掉;
/etc/supervisor/xxx_0306_new.conf这个文件就是我的supervisord的项目配置文件,包含2个项目,直接贴出来:
其中,项目一是一个django项目,项目启动时绑定本地8000端口;项目二 是一个flask项目,项目启动时绑定本地9000端口,项目都使用了pipenv虚拟环境,使用命令:supervisorctl,发现两个项目都已经启动,如下:
二、配置nginx
1、nginx配置多个server,这里可能需要不同域名的支持,我的域名还在申请中,暂不能使用,只能通过nginx监听不同的端口实现。
首先,我们在目录/etc/nginx/中建立新的目录vhost,vhost目录用于存放我们2个项目nginx的配置文件;
再次,我们在/etc/nginx/nginx.conf这个nginx默认的配置文件中使用include将我们的/etc/nginx/vhost/目录引入即可(include放到http模块中)。
三、启动supervisord
使用命令 supervisord -c /etc/supervisor/supervisord.conf 启动supervisord,使用supervisorctl命令打开supervisord的客户端,管理项目的进程。
四、启动nginx服务器
使用nginx -c /etc/nginx/nginx.conf 启动nginx服务器
五、地址栏中输入地址,查看是否配置成功
完毕!