新闻详情

新闻详情

首页 / 资讯中心 / 详情

Systemd 部署 Uvicorn‑FastAPI 生产服务

发布时间:2026/10/2 8:27:20来源:尧图网络
Systemd 部署 Uvicorn‑FastAPI 生产服务
uvicorn 详细介绍-CSDN博客nohup 后台启动 uvicorn仅测试 / 临时运行-CSDN博客简介uvicorn 新版本已经移除 daemon守护进程参数不支持自带后台运行。生产环境推荐使用 Linux systemd 管理 FastAPI 服务具备开机自启、程序异常自动重启、统一日志管理、服务状态管控能力。项目使用 Python 虚拟环境无需手动执行source activate激活环境直接调用虚拟环境内的 uvicorn 可执行文件。注意systemd 配置中所有路径必须使用绝对路径禁止相对路径。1、编写 systemd 服务配置文件编辑 service 单元文件vim /etc/systemd/system/backend.service模板内容替换为你服务器上真实的绝对路径[Unit] DescriptionFastAPI Backend Service Afternetwork.target [Service] Userroot # 项目根目录绝对路径 WorkingDirectory/opt/backend # 直接调用虚拟环境内的uvicorn不要source激活虚拟环境 ExecStart/opt/backend/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 # 进程异常自动重启 Restartalways # 崩溃后等待3秒重启 RestartSec3 [Install] # 系统开机时启动该服务 WantedBymulti-user.target参数说明WorkingDirectory项目所在目录app.main需要在此目录下可以找到。ExecStart使用虚拟环境 bin 目录下的 uvicorn 二进制程序。Restartalways无论程序 crash、被 kill都会自动重新拉起服务。RestartSec3服务停止后延迟 3 秒再重启。2、systemd 常用管理命令修改完 service 文件后必须重载 systemd 配置# 重载配置 systemctl daemon-reload # 启动服务 systemctl start backend # 设置开机自启 systemctl enable backend # 查看服务运行状态 systemctl status backend # 实时跟踪服务日志 journalctl -u backend -f # 修改代码后重启服务 systemctl restart backend # 停止服务 systemctl stop backend3、排错技巧服务启动失败优先执行systemctl status backend看报错信息排查端口占用ss -tulnp | grep 8000不要在 service 里写source ../venv/bin/activatesystemd 不支持 shell source 操作直接调用 venv/bin 下可执行文件。对比说明对比 nohup 临时方案nohup 适合测试进程崩溃不会自动恢复、服务器重启服务丢失。systemd 适合正式上线保证服务稳定性。生产额外建议uvicorn 建议搭配 gunicorn 多工作进程使用不建议单 uvicorn 直接对外暴露公网前面搭配 Nginx 反向代理。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

用AI写作工具完成本科毕业论文:从选题到降重的全流程实操指南 2026/10/2 9:17:20

用AI写作工具完成本科毕业论文:从选题到降重的全流程实操指南

写论文这事儿,真到了自己上手的时候,才知道“从选题到成稿”这六个字有多重。我见过太多同学,开题报告写得热血沸腾,到正文阶段对着空白文档发呆两个小时,憋不出三百字。后来我帮学弟学妹改论文,发现大家缺…

阅读更多 →
自适应学习系统的技术本质:BKT+IRT双引擎与端侧实时诊断 2026/10/2 9:17:14

自适应学习系统的技术本质:BKT+IRT双引擎与端侧实时诊断

1. “艾速度”不是算法黑箱,而是一套可解释的动态响应系统 “自适应学习平台艾速度”这个名称里,“艾”是AI的谐音,但绝不是指某个神秘大模型在后台全权决策;“速度”也不是单纯追求答题快慢,而是指系统对学习者认知状…

阅读更多 →
MySQL等保测评核查命令全解析:安全基线Checklist 2026/10/2 9:17:13

MySQL等保测评核查命令全解析:安全基线Checklist

做了这么多次MySQL数据库的等保测评,我最深的感受是:很多人以为测评就是查一查账号密码强度,真正把核查命令一条条落到生产库上,才发现身份鉴别、访问控制、安全审计、数据完整性、数据保密性,每一项背后都有一串具体的…

阅读更多 →
Flutter Switch 适配 OpenHarmony 实战:状态、主题与真机调试 2026/10/2 9:16:46

Flutter Switch 适配 OpenHarmony 实战:状态、主题与真机调试

在 Flutter 适配 OpenHarmony 的日常里,Switch 算是我最先认真啃的一批组件之一。原因很简单:它代码量最少,但牵涉的状态、主题、触摸热区和语义问题一点都不少。你从网上搜“Flutter for OpenHarmony Switch”,能找到的大多只是基…

阅读更多 →
MySQL命令行导出数据库实战:mysqldump参数详解与备份恢复 2026/10/2 9:16:45

MySQL命令行导出数据库实战:mysqldump参数详解与备份恢复

1. 为什么我坚持用命令行导出数据库先交代一下背景。我接手过不少项目的数据库运维,发现一个现象:很多开发同学用 Navicat 或者 DataGrip 这类图形化工具用得飞起,鼠标点几个按钮就能把库导出成 SQL 文件,看起来挺方便。但真到了生…

阅读更多 →
嵌入式Linux GPIO实战:从sysfs到libgpiod的演进与避坑指南 2026/10/2 9:16:45

嵌入式Linux GPIO实战:从sysfs到libgpiod的演进与避坑指南

1. 这不是“点灯实验”,而是嵌入式Linux下GPIO的生存法则 很多人第一次接触Linux GPIO编程,是在树莓派或Jetson Nano上跑一个“LED闪烁”的Demo。按下回车,LED亮了,心里一喜——以为掌握了。但真正把代码部署到工业网关、车载ECU或…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉