当前位置: 首页 > 后端技术 > Python

CentOS下通过Supervisor管理虚拟环境的Gunicorn Flask项目,实现开机自启等功能

时间:2023-03-26 14:23:59 Python

CentOS下通过Supervisor管理虚拟环境的GunicornFlask项目,实现开机自启动等功能,配置https和Nginx访客日志实现Gunicorn部署Flask网站,使用新建独立的方法命令窗口实现Gunicorn在后台运行。但是在实际生产环境中,我们可能需要Gunicorn随服务器自动启动,或者在系统出现故障时及时重启。下面记录部署Supervisor的全过程。本篇笔记基于CentOS下通过Gunicorn+Nginx部署PythonFlask网站,并配置https和Nginx访客日志进行后期优化。如果您还没有实现Gunicorn部署,请先阅读。环境:CentOS7,Python3.6.8进入CentOS命令窗口,输入以下命令安装Supervisoryuminstallsupervisor,按照提示操作。安装完成后,默认位置为/etc/supervisord.conf。我们需要在/etc/supervisord.d目录下新建一个ini配置文件。这里使用vi命令新建一个文件,如下vi/etc/supervisord.d/xxx.ini#xxx为自定义名称按键盘i进入编辑页面,输入以下信息(按Shift+在SSH客户端窗口中插入粘贴)[program:xxx];:右边是项目名directory=/www/flask/xxx;程序的启动目录,这里是Flask官网命令的根目录=/www/flask/xxx/venv/bin/gunicorn-w4-t30-b0.0.0.0:5000app:app;在虚拟环境中启动gunicorn,这里推荐使用绝对路径autostart=true;autorestart=truesupervisord启动时也会自动启动;程序异常退出后自动重启stdout_logfile=/supervisor_log/supervisor.log;日志存放路径,该路径需为已有路径startsecs=5;如果启动5秒后没有异常退出,则视为正常启动stopwaitsecs=0;停止等待时间在上面的信息中;为注释符命令行/www/flask/xxx/venv/bin/gunicorn为本项目虚拟环境中Gunicorn的绝对路径,请根据实际路径灵活调整(Gunicorn的命令见文章链接在注释的开头)输入正确的信息后,依次按键盘Esc键、:键、w键、q键,然后回车(保存退出)。至此,Supervisor已经安装配置成功。Supervisor似乎是自动启动的。在命令窗口输入supervisorctlreload#保存配置文件并重启如图,supervisor已经重启继续进入supervisorctl。这时,你可以看到XXX。该网站将自动启动。如果Flask源码更新,输入supervisorctlreload重启新代码supervisor常用命令如下:关闭所有任务supervisorctlshutdown#启动某个进程supervisorctlstartprogramxxx#重启某个进程supervisorctlrestartprogramxxx#停止所有进程注意:start,restart,stop不会加载最新的配置文件supervisorctlstopall#加载最新的配置文件,停止原来的进程,按照新的配置启动和管理所有进程。supervisorctlreload#根据最新的配置文件,启动一个新的配置或修改过的进程,在不改变配置的情况下重启进程。supervisorctl更新