当前位置: 首页 > news >正文

flask: 用gunicorn部署flask项目

一,安装第三方库

$ pip3 install gunicorn gevent

二,使用

-D 后台运行(守护进程)

-b 指定绑定地址和端口

-w 设置 4 个工作进程

$ gunicorn -D -b 127.0.0.1:8000 -w 4 app:app

测试 效果:

用ss查看端口是否已使用:

$ ss -lntp
State            Recv-Q           Send-Q                           Local Address:Port                        Peer Address:Port           Process                                                                                                                                  
LISTEN           0                2048                                 127.0.0.1:8000                             0.0.0.0:*               users:(("gunicorn",pid=5045,fd=5),("gunicorn",pid=5044,fd=5),("gunicorn",pid=5043,fd=5),("gunicorn",pid=5042,fd=5),("gunicorn",pid=5041,fd=5))

 

三,关闭进程

用kill即可

image

四,使用配置文件方式启动

配置文件:

# gunicorn_config.py
import multiprocessing
import os# 是否开启debug模式
debug = True# =============== 网络配置 ===============
bind = "127.0.0.1:8000"  # Gunicorn 监听地址
backlog = 2048  # 连接队列长度# =============== 工作进程 ===============
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = "gevent"
worker_connections = 1000  # gevent 模式下最大并发连接数
max_requests = 1000  # 每个 Worker 处理 N 次请求后重启(防内存泄漏)
max_requests_jitter = 100  # 随机抖动,避免雪崩式重启
timeout = 30  # 请求超时(秒)
keepalive = 5  # Keep-Alive 时间# =============== 进程管理 ===============
preload_app = True  # 预加载应用,减少 Worker 启动时间
daemon = False  # 由 systemd 管理,不启用守护模式
pidfile = "logs/gunicorn.pid"
proc_name = "flask-gunicorn"# =============== 日志配置 ===============
loglevel = "info"
accesslog = "logs/access.log"
errorlog = "logs/error.log"
access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'# =============== 安全与资源 ===============
limit_request_line = 4094  # 请求行最大长度
limit_request_fields = 100  # 请求头字段最大数量
limit_request_field_size = 8190  # 请求头字段最大大小# 是否后台运行,这一行要放在最下面
daemon = True
# =============== 用户与权限 ===============
# user = "www-data"
# group = "www-data"
# umask = 0o007                   # 创建文件的权限掩码# =============== 启动前/后钩子 ===============
def when_ready(server):print("✅ Gunicorn 服务已启动,PID:", server.pid)def pre_fork(server, worker):print(f"🔧 Worker {worker.pid} 正在 fork...")def post_fork(server, worker):print(f"✅ Worker {worker.pid} 已启动")def worker_int(worker):print(f"⚠️  Worker {worker.pid} 被中断")def worker_abort(worker):print(f"💥 Worker {worker.pid} 被强制终止")

启动命令

$ gunicorn -c gunicorn_config.py app:app

 

http://www.gsyq.cn/news/44391.html

相关文章:

  • 使用Math库执行数值计算
  • 2025年专业的短视频运营本地优质榜
  • 中文机器阅读理解数据集:7000条高质量问答数据,涵盖搜索与知道双场景,支持DESCRIPTION:YES_NO:ENTITY多类型问题,适用于BERT:GPT等模型训练与评估
  • 2025年优秀的涂装喷砂房最新TOP排名厂家
  • 2025年靠谱的品牌展厅设计展示空间创新设计榜
  • Zabbix服务告警:Zabbix server: Utilization of discoverer processes over 75%
  • 2025年11月豆包排名优化实力推荐:五强对比助企业精准决策
  • 2025年11月北京geo优化公司推荐榜:五强服务链路深度拆解
  • 2025年11月豆包搜索排名优化服务推荐:五强实力剖析与落地步骤
  • 2025年11月geo优化公司优选推荐:场景化选择指南
  • 如何更聪明地偿还债务?两种主流还款策略的对比
  • 2025年11月geo优化公司优选推荐:五家服务体系深度拆解
  • 人脸识别技术备案全攻略 - 实践
  • 20251109
  • 2025年靠谱的别墅装修售后行业热销榜
  • 破局之智:当口号碰撞时,如何通过价值解构与叙事协商抵达共识
  • 2025年口碑好的西铁城机床代理商顶级口碑榜
  • 2025年如何选抖音运营运营服务排行榜
  • 2025年知名的水分保持剂食品添加剂厂家最新推荐排行榜
  • 七段第一课:枚举
  • 2025年优秀的网站建设顶尖推荐榜
  • 2025年可靠的网站建设网站体验排行榜
  • 2025年正规的短视频拍摄热门选择排行榜
  • 2025年优质的装修全屋整装专业服务单位推荐榜
  • 2025年11月亚克力板材厂家排行榜:五强性能对比与权威评测
  • 2025年11月亚克力板材厂家对比榜:全国主流厂商数据化排行解析
  • 2025年塑胶卡板品牌综合评测:孚瑞塑胶卡板领跑行业十大供应商
  • 2025年11月四川护栏厂家评测榜:五强生产交付能力全景排行
  • 深入解析:2025年ASP.NETMVC面试题库全解析
  • 2025年比较好的赣州装修公司全包施工