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

How can I deploy FastAPI manually on a Ubuntu Server?

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

我想知道部署我的 API 用于生产的最佳和适当方法是什么。我无法使用 docker,想用服务器的方式来做。

所以我有几个问题:

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

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

这样的服务器

这个 link 也可以帮助系统服务:

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

P.S 请注意,您为 gunicorn 提供服务的方式与 docker 或 systemd-service 并没有真正的关系,对于这两种方法,您都需要配置 gunicorn。

回答您的问题:

How can I deploy FastAPI manually on a Ubuntu Server?

您可以查看此视频教程,了解如何 Deploy FastAPI on Ubuntu

部署在单个 Ubuntu VM 中具有以下体系结构。

当您查看上面的 FastAPI 部署架构图时,它显示了单个 VM 部署。

在 Ubuntu VM 中,有两个系统服务,即 caddy.servicegunicorn.service up 以及 运行。 gunicorn.service 运行 FastAPI 应用程序,caddy.serviceuvicorn.workers.UvicornWorker worker class 的帮助下将 Gunicorn 上的 FastAPI 应用程序 运行 作为反向代理公开。除此之外,我们的 FastAPI 在 databases 包的帮助下以异步方式与 PostgreSQL 数据库服务器通信,该包为 PostgreSQL 数据库提供简单的 asyncio 支持。