gunicorn配合uvicorn启动fastapi

1.安装gunicorn

pip install gunicorn

2.gunicorn启动配置,

# gunicorn_conf.py

"""
gunicorn启动配置
配合uvicorn启动
"""

import multiprocessing

# 绑定地址和端口
bind = "127.0.0.1:10002"
# 工作进程数,推荐 (2 * cpu_count) + 1
workers = multiprocessing.cpu_count() * 2 + 1
# 使用uvicorn的工作类
worker_class = "uvicorn.workers.UvicornWorker"
# 每个工作进程处理的最大请求数后重启,有助于防止内存泄漏,如果要禁止重启,则设置为0
max_requests = 1000
# 重启时的随机抖动,避免所有工作进程同时重启,单位是请求次数,指的是每个工作进程达到重启请求次数限制的随机抖动数量,比如(1000-50)~(1000+50)
max_requests_jitter = 50
# 超时时间(秒),可根据实际情况调整,如果120秒内没有响应(比如进程卡死/没有请求/请求处理时间太长),则认为超时
timeout = 120
# 保持连接(秒),有助于减少连接开销
keepalive = 5
# 访问日志文件路径,需要提前创建logs文件夹
accesslog = "./logs/access.log"
# 错误日志文件路径
errorlog = "./logs/error.log"
# 日志级别
loglevel = "info"
# 预加载应用,可以减少内存占用并加快工作进程启动速度,但调试时可能不便
preload_app = True

3.创建fastapi服务

# main.py

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}

4.启动服务

gunicorn main:app -c gunicorn_conf.py

终端启动,需要知道的是,worker启动日志是在errorlog中。

posted @ 2025-08-25 10:12  CJTARRR  阅读(69)  评论(0)    收藏  举报