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)提出

相关推荐
孟健9 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞10 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
闲云一鹤12 小时前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
曲幽13 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程17 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪17 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook18 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田1 天前
使用 pkgutil 实现动态插件系统
python
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽1 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img