admin 发表于 2026-8-11 16:08:57

Uvicorn安装与FastAPI项目部署搭建

Uvicorn 安装与 FastAPI 项目部署指南

1. 安装 Uvicorn

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

使用 pip 安装
pip install uvicorn

可选:安装带有标准库异步支持的版本
pip install uvicorn# 或者 uvloop 和 httptools
# 或者更具体的安装
pip install uvicorn uvloop httptools

2. 创建 FastAPI 项目

初始化项目
mkdir myfastapi_project
cd myfastapi_project
python -m venv venv# 创建虚拟环境
source venv/bin/activate# Linux/Mac
# venv\Scripts\activate# Windows

安装 FastAPI
pip install fastapi

创建主应用文件
创建 main.py 文件,内容如下:
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

3. 使用 Uvicorn 运行应用

开发模式运行
uvicorn main:app --reload

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


生产环境运行
uvicorn main:app --host 0.0.0.0 --port 8000

[*]--host 0.0.0.0: 允许外部访问
[*]--port 8000: 指定端口


4. 生产环境部署选项

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

选项2: 使用 Systemd 管理服务
创建 systemd 服务文件 /etc/systemd/system/fastapi_app.service:

Description=FastAPI Application
After=network.target


User=your_username
WorkingDirectory=/path/to/your/project
Environment="PATH=/path/to/your/project/venv/bin"
ExecStart=/path/to/your/project/venv/bin/gunicorn -k uvicorn.workers.UvicornWorker -w 4 -t 300 main:app


WantedBy=multi-user.target

然后启用服务:
sudo systemctl daemon-reload
sudo systemctl start fastapi_app
sudo systemctl enable fastapi_app

选项3: 使用 Docker 部署
创建 Dockerfile:
FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "-w", "4", "-t", "300", "main:app"]
# 或者直接使用 uvicorn (不推荐生产环境直接使用)
# CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

构建并运行:
docker build -t fastapi-app .
docker run -d -p 8000:8000 fastapi-app

5. 配置选项

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

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


6. 验证部署

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

[*]http://localhost:8000/ - 返回 "Hello World"
[*]http://localhost:8000/docs - 自动生成的交互式 API 文档
[*]http://localhost:8000/redoc - 另一种风格的 API 文档


通过以上步骤,您已经成功安装了 Uvicorn 并部署了一个基本的 FastAPI 应用。根据您的需求,可以选择适合的生产环境部署方式。
页: [1]
查看完整版本: Uvicorn安装与FastAPI项目部署搭建