flask+gunicorn+supervisor部署项目

一、安装模块

pip install gunicorn gevent supervisor

二、新建gunicorn_xiaole_1.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 监听本机的端口
bind = "0.0.0.0:8601"
# 未决连接的最大数量,即等待服务的客户的数量
backlog = 2048
# 进程数
workers = 8
# 线程数
threads=2
# 工作模式为gevent
worker_class = 'gevent'
# 最大客户端并发数量,默认情况下这个值为1000。
worker_connections = 1000
# 超时 默认30秒
timeout = 120
# 连接上等待请求的秒数,默认情况下值为2
keepalive = 2
# 根目录
chdir = '/opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1'
#记录PID
pidfile='gunicorn.pid'

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

gunicorn -c gunicorn_xiaole_1.py uwsgi_xiaole_1:app
curl 'http://localhost:8601/xiaole/intent?query=1'

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

四、生成supervisor配置文件

cd /opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1
mkdir supervisor
echo_supervisord_conf > supervisor/supervisord.conf

五、修改supervisor配置文件

[unix_http_server]
file=//opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor/supervisor.sock   ; the path to the socket file

[supervisord]
logfile=/opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        
logfile_backups=5           
loglevel=info               
pidfile=/opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               
silent=false                
minfds=1024                  
minprocs=200                 

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor/supervisor.sock 

[program:xiaole]
directory = /opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/ 
command=gunicorn -c gunicorn/gunicorn_xiaole_1.py uwsgi_xiaole_1:app             
autostart=true                
startsecs=5                   
startretries=3               
autorestart=true            ; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
redirect_stderr=true        ; 重定向输出的日志
stdout_syslog=true
stdout_logfile=/opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor/stdout.log        ; stdout log path, NONE for none; default AUTO
stdout_logfile_backups=5     
stderr_logfile_backups=5     
stderr_syslog=true           

六、启动 xiaole对应配置文件中的[program:xiaole]

进入
cd /opt/pymodel/project_lyj_model/SmartXiaoLe/flask/service1/supervisor
supervisord 或 supervisord -c supervisord.conf
停止 supervisorctl stop xiaole
启动 supervisorctl start xiaole
重启 supervisorctl reload
查看日志: tail -f stdout.log

七、启动多个服务器

重复第一到第六步
新建2-5对应的supervisord.conf
gunicorn_xiaole_2.py
gunicorn_xiaole_3.py
gunicorn_xiaole_4.py
gunicorn_xiaole_5.py

猜你喜欢

转载自blog.csdn.net/qq236237606/article/details/116157615
今日推荐