如何在 Ubuntu 服务器上手动部署 FastAPI?

rav*_*exu 5 python fastapi

我有一个非常简单的 API(2 个路由),它只有 GET 请求,目前不需要任何身份验证或任何东西。

我想知道部署 API 进行生产的最佳且合适的方法是什么。我无法使用 docker,并且想以服务器方式进行操作。

所以我有几个问题:

  • 在 fastapi 文档上它说你可以这样做,uvicorn main:app --host 0.0.0.0 --port 80但我在想这是否是正确的生产方式?我是否只需输入该命令,API 就会自动开始侦听服务器 IP 地址吗?这种方法是否有效并且能够处理所有请求?或者我要改变什么才能让它更快?
  • 我什么时候应该使用流程管理器?
  • 我什么时候应该使用多个工人?它们提供什么好处?
  • 我什么时候应该使用此处提到的 Gunicorn?https://www.uvicorn.org/deployment/#gunicorn

我只是对如何部署这个有点困惑,因为一篇文章说这样做,另一篇文章说这样做。

Hos*_*ari 4

如果出于某种原因您不喜欢使用 Docker-Ce,最好的方法是为systemd-service您的应用程序创建一个单元,这样每次应用程序出现故障时,systemd 都会尝试重新启动它,然后使用 或 之类的服务器运行wgsi它gunicorn。

此链接也可以帮助您了解 systemd-services:

https://blog.miguelgrinberg.com/post/running-a-flask-application-as-a-service-with-systemd

PS 请注意,您提供gunicorn 的方式与docker 或systemd-service 并不真正相关,对于这两种方法您都需要配置gunicorn。