|
|
Uvicorn 安装与 FastAPI 项目部署指南
1. 安装 Uvicorn
Uvicorn 是一个轻量级的 ASGI 服务器,用于运行 FastAPI 应用。安装步骤如下:
使用 pip 安装
可选:安装带有标准库异步支持的版本- pip install uvicorn[standard] # 或者 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
创建主应用文件
创建文件,内容如下:- 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.py 文件 (不需要 .py 后缀)
- : 在 main.py 文件中创建的 FastAPI 实例
- : 启用代码更改自动重载 (仅开发使用)
生产环境运行- uvicorn main:app --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
复制代码 :- [Unit]
- Description=FastAPI Application
- After=network.target
- [Service]
- 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
- [Install]
- WantedBy=multi-user.target
复制代码
然后启用服务:- sudo systemctl daemon-reload
- sudo systemctl start fastapi_app
- sudo systemctl enable fastapi_app
复制代码
选项3: 使用 Docker 部署
创建:- 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 有许多有用的配置选项:
[]: 指定工作进程数 (通常为 CPU 核心数 2 + 1)
- : 设置超时时间 (秒)
- : 限制并发连接数
- : 设置连接队列大小
- : 设置日志级别 (info, debug, warning, error)
6. 验证部署
访问以下端点验证应用是否正常运行:
- - 返回 "Hello World"
- http://localhost:8000/docs
复制代码 - 自动生成的交互式 API 文档
- http://localhost:8000/redoc
复制代码 - 另一种风格的 API 文档
通过以上步骤,您已经成功安装了 Uvicorn 并部署了一个基本的 FastAPI 应用。根据您的需求,可以选择适合的生产环境部署方式。 |
|