flask+gunicorn+supervisor部署项目

一、安装模块

pip install gunicorn gevent

# 如果使用python supervisor,需要安装模块
pip install supervisor

# 建议使用yum安装
yum install supervisor -y 
systemctl start supervisord

二、gunicorn配置文件,gunicorn.py

# -*- coding: utf8 -*-
bind = "0.0.0.0:8080"
workers = 4
threads = 2
backlog = 2048
# 设置守护进程,将进程交给python - supervisor管理 daemon 设置为true,由系统安装的supervisor管理则设置为false
daemon = 'false'
# 工作模式协程
worker_class = 'gevent'
# 设置最大并发量
worker_connections = 2000
chdir = "/app/project/api"
pythonpath = "%(chdir)"
pidfile = "logs/gunicorn.pid"
accesslog = "logs/access.log"
errorlog = "logs/error.log"
timeout = 600
debug = False
capture_output = True
reload = True

三、测试gunicorn flask对外接口manage.py

gunicorn -c gunicorn_conf.py manage:app

访问接口测试

测试完kill掉,下面用supervisor部署项目

四、生成supervisor配置文件(如果由pip安装的supervisor管理则需要以下步骤)

cd /app/project/api/
mkdir supervisor
echo_supervisord_conf > supervisor/supervisord.conf

五、配置 supervisor管理的项目配置文件

SIT [root@hmy supervisord.d]# pwd
/etc/supervisord.d
SIT [root@hmy supervisord.d]# cat ops_sys.ini 
[program:ops_sys]
directory = /app/project/
command=/app/project/venv/bin/gunicorn -c sys-service/gunicorn_conf.py manage:app
user=root
autostart=true
startsecs=5
startretries=3
autorestart=true            ; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
redirect_stderr=true        ; 重定向输出的日志
stdout_syslog=true
stdout_logfile=/app/project/supervisor/sys_stdout.log        ; stdout log path, NONE for none; default AUTO
stderr_logfile=/app/project/supervisor/sys_stderr.log
stdout_logfile_backups=5
stderr_logfile_backups=5

六、启动项目

supervisorctl start all
posted @ 2022-04-11 10:35  醒日是归时  阅读(119)  评论(0编辑  收藏  举报