FastAPI部署在Linux服务器详细教程

简介

FastAPI是一个可快速构建API服务的Web框架,可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic),是最快的 Python Web 框架之一。更多详情见官网FastAPI官网地址

本文对FastAPI的开发部署以及生产环境部署做一个记录。

开发部署

安装uvicorn作为asgi应用服务器

pip install uvicorn

例:main.py

from fastapi import FastApi

app = FastApi()


@app.get('/hello')
async def hello():
    return {
   'message': 'hello World'}

nvicorn main:app --reload 开发模式下运行 热加载

如果是想在Pycharm等IDE中直接运行,可以在代码中加入

if __name__ == '__main__':
    uvicorn.run("main:app", host="127.0.0.1", port=8000, log_level="info")

即可直接run运行,不需要使用命令行,但只适合用于开发环境。

生产环境部署

生产环境:CentOS7.x +Nginx

1.安装Gunicorn

Gunicorn 是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server,和大多数的Web框架兼容,并具有实现简单,轻量级,高性能等特点。

使用gunicorn启动应用程序的好处是,它可以处理大量的并发连接,,并且其使用的是预派生子进程的方式,这意味着它能够更好地利用多核CPU。

安装命令

pip install uvicorn
pip install gunicorn

Shell中执行gunicorn -v有版本输出表示安装成功

2.以配置文件方式启动应用

创建gunicorn.py文件,里面包含下列内容

import os

# 设置守护进程
daemon=True<
### 部署FastAPI应用至Linux服务器 #### 安装依赖环境 为了确保能够在Linux环境中顺利运行FastAPI应用程序,需先确认已安装Python版本高于3.8。之后,可以通过pip工具来安装必要的软件包如`uvicorn`用于启动服务[^3]。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install python3-pip -y pip install --upgrade pip setuptools wheel pip install "uvicorn[standard]" ``` #### 构建FastAPI项目框架 构建一个标准的FastAPI项目结构有助于更好地管理和扩展程序功能。通常情况下,项目的根目录下会包含`main.py`作为主要的应用入口文件以及`requirements.txt`记录所需的第三方库列表[^4]。 ```plaintext /project ├── app │ ├── __init__.py │ └── main.py # 主应用程序入口 └── requirements.txt ``` 在`main.py`中定义简单的路由接口: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello, Linux Server!"} ``` 同时,在同一级创建`requirements.txt`并写入所需依赖项: ```text fastapi>=0.70.0,<0.99.0 uvicorn[standard]>=0.15.0,<0.20.0 ``` #### 使用Uvicorn手动测试服务 完成上述配置后,可以在本地通过命令行方式利用`uvicorn`快速验证应用是否正常工作。 ```bash uvicorn app.main:app --reload --host=0.0.0.0 --port=8000 ``` 此命令将会监听所有网络接口上的8000端口,并开启自动重载模式以便于开发调试阶段使用。 #### 利用Docker容器化部署方案 考虑到生产环境下更稳定可靠的运维需求,推荐采用Docker技术实现自动化打包与发布流程。为此需要编写一份名为`Dockerfile`的镜像描述文档位于项目根路径下。 ```dockerfile FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8-slim COPY ./app /app WORKDIR /app RUN pip install --no-cache-dir -r requirements.txt CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] ``` 接着执行以下指令完成镜像构建及容器实例启动操作: ```bash docker build -t my_fastapi_app . docker run -d -p 80:80 --name running_my_fastapi_app my_fastapi_app ``` 这样就实现了基于Docker容器化的FastAPI应用部署过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyTHP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值