fastapi常用的启动方式
demo
gunicorn main:app -b 0.0.0.0:11223 -w 10 -k uvicorn.workers.UvicornH11Worker --daemon # 在线上先这样才能看到报错信息 uvicorn main:app --reload --host 0.0.0.0 uvicorn main:app --reload gunicorn -c gunicorn_info.py info:app ps -ef|grep gunicorn |grep -v grep |awk '{print $2}'|xargs kill -9
可能遇到的问题:
fastapi 一般是使用 uvicorn 启动的,gunicorn需要对uvicorn包装。 使用supervisor管理进程时, gunicorn --worker-class="uvicorn.workers.UvicornWorker" main:app --bind 0.0.0.0:8040 --workers 1 --timeout 120 --threads 2 启动时,遇到了,无法连接端口的问题: [ERROR] Connection in use: ('0.0.0.0', 8040) 问题: 在主程序(main)中使用了 if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8040, access_log=True, reload=False, log_config=defaultLoggingConfig.log_config) 导致8040端口被占用,需要删除上面行。