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中。
浙公网安备 33010602011771号