本文引用的文件
本文件面向AI有声书生成平台的部署与运维,覆盖开发、测试与生产三类环境的部署配置与流程,包括:
项目采用前后端分离架构:
运维:提供多套部署脚本与自动化部署方案,支持PM2进程管理与Nginx反代
graph TB
subgraph "客户端"
U["浏览器/移动端"]
end
subgraph "边缘层"
NGINX["Nginx 反向代理<br/>静态资源/HTTPS/重定向"]
end
subgraph "应用层"
API["后端API服务<br/>Koa + Prisma + Redis + OSS"]
WS["WebSocket 服务"]
end
subgraph "数据层"
MYSQL["MySQL 8.0"]
REDIS["Redis 缓存"]
OSS["对象存储(OSS)"]
end
U --> NGINX
NGINX --> API
API --> MYSQL
API --> REDIS
API --> OSS
API --> WS
图表来源
章节来源
章节来源
下图展示从客户端到后端服务、数据库与缓存的整体交互:
sequenceDiagram
participant C as "客户端"
participant N as "Nginx"
participant A as "后端API"
participant P as "Prisma"
participant M as "MySQL"
participant R as "Redis"
participant O as "OSS"
C->>N : HTTPS 请求
N->>A : 反向代理 /api/*
A->>P : 查询/更新
P->>M : SQL 执行
A->>R : 读写缓存
A->>O : 上传/下载媒体
A-->>N : 响应
N-->>C : 返回内容
图表来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
章节来源
方案二:Git Hook(简化)
服务器Git仓库post-receive钩子,拉取代码、构建后PM2重启
sequenceDiagram
participant Dev as "开发者(Gogs)"
participant N as "Nginx"
participant W as "Webhook服务"
participant S as "服务器"
participant D as "部署脚本"
participant P as "PM2"
Dev->>N : 推送代码触发webhook
N->>W : 转发 /webhook
W->>S : 验证签名/解析payload
S->>D : 执行部署脚本
D->>P : pm2 restart server
P-->>Dev : 部署完成
图表来源
章节来源
章节来源
章节来源
章节来源
graph LR
APP["server/src/app.ts"] --> CFG["server/src/config/index.ts"]
APP --> SEC["server/src/middleware/security.ts"]
APP --> SEN["server/src/services/sentry.service.ts"]
APP --> PRISMA["server/prisma/schema.prisma"]
APP --> MYSQL["MySQL 8.0"]
APP --> REDIS["Redis"]
APP --> OSS["OSS"]
NGINX["Nginx"] --> APP
FE["前端静态资源"] --> NGINX
图表来源
章节来源
章节来源
章节来源
本部署运维文档提供了从开发到生产的完整落地方案,涵盖容器化、反向代理、数据库与缓存、自动化部署与回滚、监控告警与安全加固。建议在生产环境中结合宝塔面板与Webhook自动化部署,并定期进行备份与演练。
章节来源
章节来源