fastapi部署到服务器
fastapi部署到服务器
进入到虚拟环境当中,conda激活py特定环境
用 Gunicorn 正式跑(重点来了)
同一行就可以不用写,不同行后面就一个\
nohup gunicorn app.main:app \ |
- gunicorn:负责管进程,不让程序死
- main:app:main.py 里的 app = FastAPI()
fastapi-project/ |
- -k uvicorn.workers.UvicornWorker:让 FastAPI 能用异步
- -w 4:同时干活的进程有 4 个
- -b 127.0.0.1:8000:只在服务器自己身上开 8000 端口,这里是公网
- nohup → 让进程在你退出 SSH 后仍继续运行
- -b 0.0.0.0:8000 → 绑定公网 IP,外网可访问
一般是先直接执行看看有没有问题,没问题在加nohup
gunicorn app.main:app \ |
使用清华原下载
pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple |
还需要下载一个gunicorn
pip install gunicorn |
(fastapi) root@VM-0-9-ubuntu:/home/ubuntu/fastapi/fastapi-project# nohup gunicorn app.main:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000 --access-logfile /home/ubuntu/fastapi/fastapi-project/logs/access.log --error-logfile /home/ubuntu/fastapi/fastapi-project/logs/error.log & |
已经跑起来了
查看端口
ss -lntp | grep 8000 |
查看进程
ps aux | grep gunicorn |
这里写了四个分支所以有五个进程一个总的,四个分支
查看总的和分的
pstree -p | grep gunicorn |
停止进程
kill -9 460734 |
总结一下,在服务器上面运行fastapi
1、先配置好python环境,下载conda,创建虚拟环境,下载好依赖,conda activate到虚拟环境当中
2、使用gunicorn来启动fastapi看看能不能运行,有没有报错,
gunicorn app.main:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000 |
没有报错的话在添加nohup后台运行.这里要注意的是
nohup gunicorn app.main:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000 & |
app.main:app的位置,cd到fastapi-project,执行上面命令就可以了
fastapi-project/ |
- 左边 app.main → Python 模块
- 右边 app → 模块里 FastAPI 实例
左边对应的项目的启动文件的位置, |
3、结束的话就查看进程在kill掉就好了.