当前位置: 首页 > 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.jsqmd.com/news/35587/

相关文章:

  • 2025年评价高的盐城短视频剪辑用户好评榜
  • 使用Math库执行数值计算
  • 实用指南:Guava Cache 高性能本地缓存库详解与使用案例
  • 深度学习进阶(一)——从 LeNet 到 Transformer:卷积的荣光与注意力的崛起 - 实践
  • 2025年热门的剧院舞台灯光厂家最新推荐榜
  • 2025年知名的火车宠物托运用户好评榜
  • 2025年专业的短视频运营本地优质榜
  • 2025年11月货架厂家推荐榜:五强对比评测与选购全解析
  • 2025年优秀的涂装喷砂房最新TOP排名厂家
  • 2025年靠谱的品牌展厅设计展示空间创新设计榜
  • 2025年优秀的海外短信平台用户推荐权威榜
  • 2025年11月geo优化服务商推荐榜:五强服务差异与风险中性提示
  • 2025年11月geo优化服务商实力推荐榜:头部案例与落地流程全公开
  • [ docker context ]
  • Zabbix服务告警:Zabbix server: Utilization of discoverer processes over 75%
  • 2025年优质的合规管理知识产权贯标热门口碑排行榜
  • 2025年11月豆包排名优化实力推荐:五强对比助企业精准决策
  • 2025年11月货架厂家推荐榜:陕西三禾领衔全维度对比评测
  • 2025年11月北京geo优化公司推荐榜:五强服务链路深度拆解
  • 2025年11月豆包搜索排名优化推荐盘点:五强方案覆盖全平台算法
  • 2025年11月北京geo优化公司推荐榜:场景化选择全攻略
  • 2025年11月豆包搜索排名优化服务推荐:五强实力剖析与落地步骤
  • 实用指南:计算机视觉——从YOLO系列演进到YOLOv12架构创新、注意力机制优化、推理实践与性能基准
  • 2025年11月豆包关键词排名优化推荐榜:数据驱动型全景看板
  • 如何更聪明地偿还债务?两种主流还款策略的对比
  • 2025年11月geo优化公司优选推荐:场景化选择指南
  • 2025年11月生成式引擎优化年度推荐:五强对比与选型决策路线图
  • 2025年靠谱的西安树脂瓦直销制造
  • 2025年11月geo优化公司优选推荐:五家服务体系深度拆解
  • 人脸识别技术备案全攻略 - 实践