Ubuntu 22.04 生产环境部署 FastAPI + Uvicorn + Nginx 实战
在生产环境下,单纯使用 Uvicorn 监听外部请求存在性能和安全风险。为了构建一个高可用、可维护的 Python Web 服务平台,我们采用如下部署架构:
Internet │ ▼ Nginx (反向代理 + SSL/TLS) │ proxy_pass ▼ Uvicorn Workers (基于 uvloop + Gunicorn 管理) │ FastAPI Application │ PostgreSQL / Redis / 后端微服务
这套方案适用于高并发 API 服务、微服务架构中的 HTTP 接口部署,以及需要 TLS/HTTPS 安全访问的生产环境。
服务器硬件与系统建议
为了保证并发请求的稳定性和日志写入速度,推荐以下配置:
| 项目 | 推荐配置 | 说明 |
|---|---|---|
| CPU | 4 核及以上 | 确保并发处理能力 |
| 内存 | 8GB 以上 | 满足 Python GC 及缓存需求 |
| 磁盘 | NVMe 150GB 以上 | 提升 I/O 性能 |
| 网络 | 公网带宽 100Mbps | 保障 API 对外访问质量 |
| 系统 | Ubuntu 22.04 LTS | 选择最新稳定版 |
外网访问建议部署具有 DDoS 防护的 BGP 线路服务器,例如 CN2 或电信直连方案,以降低网络抖动和丢包率。
系统初始化与依赖安装
更新系统
首先确保系统是最新的,这能减少潜在的安全漏洞。
sudo apt update && sudo apt upgrade -y
sudo reboot
安装 Python 环境与必备工具
我们需要 Python 3.10 及其开发库,同时安装 Nginx 和防火墙工具。
# 安装 Python3.10
sudo apt install -y python3.10 python3.10-venv python3.10-dev python3-pip build-essential
# 常用工具
sudo apt install -y nginx ufw git
建立虚拟环境
进入应用目录 /opt/fastapi_app,创建隔离的 Python 环境。
sudo mkdir -p /opt/fastapi_app
sudo chown $USER:$USER /opt/fastapi_app
cd /opt/fastapi_app
python3.10 -m venv venv
venv/bin/activate

