开发完成后,将 FastAPI 项目部署到服务器并对外提供服务是最后一步。本文将介绍几种常见的部署方式,包括使用 Uvicorn + Gunicorn 部署到 Linux 服务器、配置 Nginx 反向代理 以及启用 HTTPS(SSL)证书。你将学会如何将本地开发好的项目稳定、安全地上线运行。
部署准备
在部署前,请确保你已经完成以下准备:
-
• 项目已通过本地测试,结构清晰; -
• 拥有一台可用的 Linux 服务器(推荐 Ubuntu 20.04+); -
• 已设置好 Python 虚拟环境; -
• 已具备域名和 SSL 证书(建议使用免费的 Let's Encrypt)。
安装部署依赖
sudo apt update
sudo apt install python3-pip python3-venv nginx -y
在你的项目根目录创建虚拟环境并安装依赖:
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install fastapi uvicorn[standard] gunicorn
创建 Gunicorn 启动脚本
新建文件 start.sh(可放在根目录):
#!/bin/bash
source venv/bin/activate
exec gunicorn main:app \
--workers 4 \
--worker-class uvicorn.workers.UvicornWorker \
--bind 127.0.0.1:8000
给脚本执行权限:
chmod +x start.sh
你也可以使用 systemd 创建服务,确保项目随系统启动。
配置 Nginx 反向代理
编辑 Nginx 配置(路径可能为 /etc/nginx/sites-available/your-site.conf):
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/your-site.conf /etc/nginx/sites-enabled/
sudo nginx -t # 检查语法
sudo systemctl restart nginx
启用 HTTPS(推荐)
启用 HTTPS 有很多好处,包括提高安全性、保护用户隐私、避免中间人攻击,以及提高 SEO 排名等。现代浏览器强烈要求启用 HTTPS,否则网站会被标记为“不安全”。因此建议你的网站也要启用 HTTPS。
但是启用 HTTPS 需要提前申请一张 SSL 证书,推荐使用 Certbot 工具进行 SSL 证书配置和管理。它可以帮你完成以下事情:
-
• 向 Let's Encrypt 申请一个免费的 SSL 证书; -
• 自动配置你的 Nginx(或 Apache)服务器启用 HTTPS; -
• 自动续期,防止证书过期(默认 90 天有效)。
具体操作流程如下:
-
• 安装 Certbot: sudo apt install certbot python3-certbot-nginx -y -
• 申请证书并自动配置 HTTPS: sudo certbot --nginx -
• 设置自动续期: sudo certbot --nginx
配置过程中,系统会提示你选择域名(已配置到服务器的),并自动修改 Nginx 配置文件。Certbot 配置后的文件位置如下表所示。
|
|
|
|
|
/etc/letsencrypt/live/yourdomain.com/fullchain.pem |
|
|
/etc/letsencrypt/live/yourdomain.com/privkey.pem |
|
|
/etc/nginx/sites-available/yourdomain.com.conf |
• Certbot 是一个由 EFF(电子前哨基金会)开发的开源工具,用于自动申请和安装 Let's Encrypt 免费 SSL 证书。 • Let's Encrypt 是一个由非营利组织 ISRG 发起的 免费 SSL 证书颁发机构,目前已被主流浏览器和操作系统广泛支持。你可以通过 Certbot 快速申请它的证书,无需付费。
适合独立开发者的部署方式
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
建议:
-
• 如果你想部署完整项目(后端 + 数据库),首选 Railway 或 Render,界面友好、支持 Git 自动部署、本地调试方便。 -
• 如果你熟悉 Docker 或希望获得更多控制权,可以选择 Fly.io 或 DigitalOcean。 -
• 如果只是学习/原型开发,你也可以从 Replit、Deta Space 开始尝试,免费又简单。 -
• 如果你使用 Vercel 部署前端(如 React),后端 FastAPI 推荐部署在独立平台,然后通过 API 域名连接。
推荐部署方式总结
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小结
将 FastAPI 项目部署上线需要几个关键步骤:准备 Python 环境、使用 Gunicorn 运行项目、配置 Nginx 反向代理、启用 HTTPS。整个过程不复杂,但建议你一步步操作并测试结果,确保服务稳定可靠。完成部署后,你的 API 就可以安全、稳定地向用户提供服务了。

