找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5221|回复: 0

Uvicorn安装与FastAPI项目部署搭建

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 16:08:57 | 显示全部楼层 |阅读模式
Uvicorn 安装与 FastAPI 项目部署指南

1. 安装 Uvicorn

Uvicorn 是一个轻量级的 ASGI 服务器,用于运行 FastAPI 应用。安装步骤如下:

使用 pip 安装
  1. pip install uvicorn
复制代码

可选:安装带有标准库异步支持的版本
  1. pip install uvicorn[standard]  # 或者 uvloop 和 httptools
  2. # 或者更具体的安装
  3. pip install uvicorn uvloop httptools
复制代码

2. 创建 FastAPI 项目

初始化项目
  1. mkdir myfastapi_project
  2. cd myfastapi_project
  3. python -m venv venv  # 创建虚拟环境
  4. source venv/bin/activate  # Linux/Mac
  5. # venv\Scripts\activate  # Windows
复制代码

安装 FastAPI
  1. pip install fastapi
复制代码

创建主应用文件
创建
  1. main.py
复制代码
文件,内容如下:
  1. from fastapi import FastAPI
  2. app = FastAPI()
  3. @app.get("/")
  4. async def read_root():
  5.     return {"message": "Hello World"}
  6. @app.get("/items/{item_id}")
  7. async def read_item(item_id: int, q: str = None):
  8.     return {"item_id": item_id, "q": q}
复制代码

3. 使用 Uvicorn 运行应用

开发模式运行
  1. uvicorn main:app --reload
复制代码

    1. main
    复制代码
    : main.py 文件 (不需要 .py 后缀)
    1. app
    复制代码
    : 在 main.py 文件中创建的 FastAPI 实例
    1. --reload
    复制代码
    : 启用代码更改自动重载 (仅开发使用)


生产环境运行
  1. uvicorn main:app --host 0.0.0.0 --port 8000
复制代码

    1. --host 0.0.0.0
    复制代码
    : 允许外部访问
    1. --port 8000
    复制代码
    : 指定端口


4. 生产环境部署选项

选项1: 使用 Gunicorn 作为进程管理器
  1. pip install gunicorn
  2. gunicorn -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8000
复制代码

选项2: 使用 Systemd 管理服务
创建 systemd 服务文件
  1. /etc/systemd/system/fastapi_app.service
复制代码
:
  1. [Unit]
  2. Description=FastAPI Application
  3. After=network.target
  4. [Service]
  5. User=your_username
  6. WorkingDirectory=/path/to/your/project
  7. Environment="PATH=/path/to/your/project/venv/bin"
  8. ExecStart=/path/to/your/project/venv/bin/gunicorn -k uvicorn.workers.UvicornWorker -w 4 -t 300 main:app
  9. [Install]
  10. WantedBy=multi-user.target
复制代码

然后启用服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl start fastapi_app
  3. sudo systemctl enable fastapi_app
复制代码

选项3: 使用 Docker 部署
创建
  1. Dockerfile
复制代码
:
  1. FROM python:3.9-slim
  2. WORKDIR /app
  3. COPY requirements.txt .
  4. RUN pip install --no-cache-dir -r requirements.txt
  5. COPY . .
  6. CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "-w", "4", "-t", "300", "main:app"]
  7. # 或者直接使用 uvicorn (不推荐生产环境直接使用)
  8. # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
复制代码

构建并运行:
  1. docker build -t fastapi-app .
  2. docker run -d -p 8000:8000 fastapi-app
复制代码

5. 配置选项

Uvicorn 有许多有用的配置选项:

    []
    1. --workers
    复制代码
    : 指定工作进程数 (通常为 CPU 核心数
    2 + 1)
    1. --timeout
    复制代码
    : 设置超时时间 (秒)
    1. --limit-concurrency
    复制代码
    : 限制并发连接数
    1. --backlog
    复制代码
    : 设置连接队列大小
    1. --log-level
    复制代码
    : 设置日志级别 (info, debug, warning, error)


6. 验证部署

访问以下端点验证应用是否正常运行:

    1. http://localhost:8000/
    复制代码
    - 返回 "Hello World"
    1. http://localhost:8000/docs
    复制代码
    - 自动生成的交互式 API 文档
    1. http://localhost:8000/redoc
    复制代码
    - 另一种风格的 API 文档


通过以上步骤,您已经成功安装了 Uvicorn 并部署了一个基本的 FastAPI 应用。根据您的需求,可以选择适合的生产环境部署方式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:12 , Processed in 0.078754 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表