windows使用supervisor-win部署flask项目

安装supervisor-win

截止目前最新版本为4.7.0

pip install supervisor-win

配置文件

保存名为supervisor-win.ini的配置文件,其中port=*:9001代表监控所有IP地址,由于windows没有办法使用uwsgi,所以这里配置了两个program[program:app-win1][program:app-win2](可以配置更多。。。),然后再使用nginx的负载均衡功能来提高并发量

ini 复制代码
[supervisord]
nodaemon=false

[inet_http_server]
port=*:9001

[supervisorctl]

[program:app-win1]
command=D:\\workspace\\flask\\flask-server\\venv\\Scripts\\python.exe D:\\workspace\\flask\\flask-server\\src\\wsgi.py 5001
autostart=true
autorestart=true
# 将stderr的日志写入stdout日志文件中
redirect_stderr=true
stdout_logfile=D:\workspace\flask\flask-server\logs\app1.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=5
# 杀死进程组包括子进程
stopasgroup=true
killasgroup=true

[program:app-win2]
command=D:\\workspace\\flask\\flask-server\\venv\\Scripts\\python.exe D:\\workspace\\flask\\flask-server\\src\\wsgi.py 5002
autostart=true
autorestart=true
# 将stderr的日志写入stdout日志文件中
redirect_stderr=true
stdout_logfile=D:\workspace\flask\flask-server\logs\app2.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=5
# 杀死进程组包括子进程
stopasgroup=true
killasgroup=true

服务安装

.\venv\Scripts\python.exe -m supervisor.services install -sn flask-server -c D:\workspace\flask\flask-server\conf\supervisor-win.ini

在【服务】中设置找到flask-server,设置为自动启动,这样重启电脑就可以自动启动了

进程监控

进入http://localhost:9001

负载均衡配置文件

nginx和nginx-service安装教程

nginx.conf

conf 复制代码
upstream flaskapp {
    server localhost:5001 max_fails=2;
    server localhost:5002 max_fails=2;
    server localhost:5003 max_fails=2;
    server localhost:5004 max_fails=2;
}

server {
    listen       5000;
    server_name  localhost;
    
    location / {
        proxy_connect_timeout 2s;
        proxy_pass http://flaskapp /;
    }
}

BUG记录

配置文件中即使使用了redirect_stderr=true也无法将错误日志重定向到标准输出日志中,github也有相应的issue(Subprocess log file setting issue)提出

相关推荐
java1234_小锋20 分钟前
[免费]基于Python的影视数据可视化分析系统(Flask+echarts)【论文+源码+SQL脚本】
python·信息可视化·flask·python影视分析·python电影分析
精致先生2 小时前
Streamlit实现Qwen对话机器人
python·机器人·大模型·streamlit
Evaporator Core3 小时前
Windows批处理脚本自动合并当前目录下由You-get下载的未合并的音视频文件
windows·音视频
蜀中廖化3 小时前
机器学习:基于OpenCV和Python的智能图像处理 实战
python·opencv·机器学习
java1234_小锋4 小时前
一周学会Matplotlib3 Python 数据可视化-绘制热力图(Heatmap)
开发语言·python·信息可视化·matplotlib·matplotlib3
程序员岳焱5 小时前
Java 调用 Python 脚本:实现 HelloWorld
java·后端·python
R-G-B6 小时前
【P27 4-8】OpenCV Python——Mat类、深拷贝(clone、copyTo、copy)、浅拷贝,原理讲解与示例代码
人工智能·python·opencv·浅拷贝·深拷贝·opencv python·mat类
菜菜子爱学习6 小时前
Nginx学习笔记(八)—— Nginx缓存集成
笔记·学习·nginx·缓存·运维开发
码界筑梦坊6 小时前
135-基于Spark的抖音数据分析热度预测系统
大数据·python·数据分析·spark·毕业设计·echarts
Blossom.1187 小时前
把大模型当“温度计”——基于 LLM 的分布式系统异常根因定位实战
人工智能·python·深度学习·机器学习·自然语言处理·分类·bert