当前位置: 首页 > news >正文

Fastapi全面教程:常用 API 串联与实战指南

大家好,我是jobleap.cn的小九。在生产环境下,我们不再简单地使用uvicorn main:app,而是需要考虑进程守护、多核并发、故障自启以及特权端口管理

🛠 方案一:PM2 方案(最简单、全能)

PM2本是 Node.js 领域的顶流,但因其极简的命令行界面和强大的进程监控能力,现已成为 Python 开发者在 Linux 上部署 Web 服务的热门选择。

1. 安装与准备

# 安装 Node 环境及 PM2sudoaptupdate&&sudoaptinstallnodejsnpm-ysudonpminstall-g pm2

2. 启动 FastAPI

PM2 可以直接托管 uvicorn 进程。为了监听80 端口,命令前必须加sudo

sudopm2 start"uvicorn main:app --host 0.0.0.0 --port 80"--name"fastapi-demo"

3. 常用运维命令

功能命令
查看所有服务状态sudo pm2 list
查看实时日志sudo pm2 logs fastapi-demo
重启服务sudo pm2 restart fastapi-demo
开机自启sudo pm2 save && sudo pm2 startup

🚀 方案二:Gunicorn + Uvicorn 方案(工业标准)

这是 Python 社区最正统的生产部署方式。Gunicorn负责管理进程(Master),Uvicorn负责处理异步请求(Worker)。这种组合兼顾了稳定性和异步高性能。

1. 安装依赖

pipinstallgunicorn uvicorn

2. 启动命令

使用-k uvicorn.workers.UvicornWorker参数来启动异步工作流:

sudogunicorn main:app\--workers4\--worker-class uvicorn.workers.UvicornWorker\--bind0.0.0.0:80\--daemon
  • --workers 4: 启动 4 个进程(建议设置为2 * CPU核心数 + 1)。
  • --daemon: 在后台运行。

3. 如何停止 Gunicorn

由于 Gunicorn 是后台运行的,需要通过查找进程 ID 来关闭:

# 查找进程并杀死psaux|grepgunicornpkillgunicorn

⚖️ PM2 vs Gunicorn 选型对比

特性PM2Gunicorn
易用性极高,像刷短视频一样简单一般,需要配合 Systemd 使用
日志管理自带精美日志面板,支持自动切割需手动配置日志文件路径
监控提供 CPU、内存实时可视化需配合三方工具(如 Prometheus)
适用人群追求开发效率、全栈开发者纯 Python 环境、追求极致底层的团队

🛡 生产环境的安全堡垒:Nginx 反向代理

在真正的生产环境中,我们通常不让Python 直接监听 80 端口,而是让 Nginx 监听 80,再转发给后端的 Python(如监听 8000 端口)。

这样做的好处:

  1. SSL 证书:Nginx 处理 HTTPS 极其方便。
  2. 静态资源:Nginx 处理图片、CSS 的速度远超 FastAPI。
  3. 安全性:隐藏真实的后端服务器信息。

🆘 常见报错排查

  1. 端口被占用
    运行sudo lsof -i :80。如果有输出,说明 80 端口被占用(通常是默认的 Nginx)。执行sudo systemctl stop nginx即可释放。
  2. 权限拒绝 (Permission Denied)
    在 Linux 中,非 root 用户无法绑定 1024 以下端口。必须使用sudo启动。
  3. 代码更新不生效
    Git pull 完代码后,必须执行pm2 restartpkill gunicorn重新加载进程。
http://www.jsqmd.com/news/269431/

相关文章:

  • 【图像去噪】基于均值+中值+软硬阙值小波变换图像去噪附Matlab代码
  • 2026 年 1 月环氧地坪漆厂家推荐排行榜,环氧彩砂自流平,防静电/水性/室内/车间/车库环氧地坪漆,专业施工与持久耐磨品质之选 - 企业推荐官【官方】
  • 2026深圳GEO服务商评测指南:技术实力与实战效果双维度解析
  • 完整教程:专题:2025年脑机接口产业蓝皮书:市场规模、专利技术、投融资与临床应用|附40+份报告PDF、数据、可视化模板汇总下载
  • 基于 YOLOv8 的猪只行为智能识别系统实践[目标检测完整源码]
  • 如何解决 Error Get “https://registry-1.docker.io/v2/”: dial tcp xxx.xx.1xx:443: connect: connection time
  • AI 写代码越快越危险?破解“高产低质”困局,这一步至关重要
  • 基于 YOLOv8 的茶叶病害智能识别系统[目标检测完整源码]
  • 别把 Cursor 只当代码补全工具!这样做,让 AI 真正读懂你的项目架构
  • Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘trio’ 问题
  • 【水果分类】基于计算机视觉和前馈神经网络自动水果分类系统附Matlab代码
  • Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘aiohttp’ 问题
  • 2026年1月电动搬运车厂家推荐排行榜,四轮电动搬运车,1~10吨电动搬运车,高效搬运解决方案优选指南 - 企业推荐官【官方】
  • 紫金桥跨平台监控组态软件:工业生产的可视化控制平台
  • 跨国企业Cadence许可证全球统一管理方案
  • Petrel的license管理高频技术问题(FAQ)与官方解答
  • AI应用架构师解析AI系统灾备方案设计的优化策略
  • ToB获客新战场:AI推荐如何改写游戏规则
  • 为什么企业明明“上了 ITSM”,业务却依然不知道该找 IT 做什么?
  • iOS 应用加固软件怎么选,从源码到IPA方案选择
  • 2026.1.17 作业 - P4141 消失之物
  • ClickHouse与Impala对比:SQL-on-Hadoop方案选择
  • PLC 原理入门教程:从基础概念到实际应用,零基础也能看懂
  • 2026企业AI数字资产管理平台评测:谁在定义下一代无形资产?
  • Windows实用小工具,吾爱出品
  • 如何判断组态软件是否好用?跨越传统标准,开启工业智能新视野
  • 测试Intern-S1-MO
  • 每个人都能用的 AI 神器:教你用“即梦4”和“Sora-2”做大片
  • PLC编程模板详解目录
  • 2026 年 1 月餐饮设计公司推荐榜单:餐厅/空间/全案设计,涵盖中餐、粤菜、湘菜、酒店及软装设计,打造高人气餐饮美学空间 - 企业推荐官【官方】