如何使用 wsgi 服务器在共享主机上部署 fastapi 应用程序?

Eyu*_*beh 5 python passenger cpanel asgi fastapi

在最近的一篇文章中, https://www.vultr.com/docs/how-to-deploy-fastapi-applications-with-gunicorn-and-nginx-on-ubuntu-20-04/

我读到 fastapi“如果需要可以与 WSGI 一起使用”。我就想知道怎么办?

我用 fastapi 做了一个完整的项目,并尝试将其部署在 cpanel 共享主机上(我目前的选择),

在 wsgi.py 文件中我使用了 a2sg 库

from main import app
from a2wsgi import ASGIMiddleware
application = ASGIMiddleware(app)
Run Code Online (Sandbox Code Playgroud)

但我得到 503 暂时繁忙,当我浏览该页面时重试

那么,我如何部署我的应用程序,我轻松部署了 django,但 fasapi 是一个问题,因为它主要使用 ASGI。也可以吗?

小智 1

除了添加 A2WSGI 中间件之外,您还需要执行一些检查。

  1. 在每个目录中添加名为的空 py 文件,__init__.py包括应用程序的根目录

  2. passenger.py使用您给出的相同代码创建新文件wsgi.py

  3. passenger.py在设置 python 应用程序时使用上述文件,并将wsgi.py您已经准备好的文件保存在同一目录中。(C面板->设置Python应用程序)

  4. 使用未使用的端口运行Uvicorn服务器,例如60323等。

  5. 从 Python 应用程序选项重新启动应用程序