diff --git a/docs/09-部署运维/deploy/01-部署指南.md b/docs/09-部署运维/deploy/01-部署指南.md new file mode 100644 index 0000000..4a91db6 --- /dev/null +++ b/docs/09-部署运维/deploy/01-部署指南.md @@ -0,0 +1,184 @@ +# 智能IT服务台 - 部署指南 + +> **最后更新**:2026-07-05 +> **目标服务器**:`10.90.5.110` +> **域名**:`itsupport.servyou.com.cn` + +--- + +## 目录 + +1. [部署流程](#一部署流程) +2. [蓝绿部署](#二蓝绿部署) +3. [故障排查](#三故障排查) +4. [回滚方案](#四回滚方案) + +--- + +## 一、部署流程 + +### 1.1 前置条件 + +| 条件 | 状态 | 验证命令 | +|------|------|---------| +| Linux 服务器 10.90.5.110 | ✅ 已确认 | - | +| Docker 已安装 | ✅ 已确认 | `docker --version` | +| 域名解析 | ✅ 已配置 | `nslookup itsupport.servyou.com.cn` | +| 堡垒机可访问 | ✅ 已配置 | `ssh -p 2222 user@10.212.189.210` | + +### 1.2 快速部署命令 + +```bash +# 1. 进入部署目录 +cd /opt/wecom-it-desk + +# 2. 拉取最新代码(可选) +git pull origin main + +# 3. 构建并启动 +docker compose up -d --build + +# 4. 检查状态 +docker ps +``` + +### 1.3 一键部署(生产环境) + +详见 [10-一键部署操作包-v0.7.0.md](./10-一键部署操作包-v0.7.0.md) + +### 1.4 部署后验证 + +```bash +# 检查容器状态 +docker ps + +# 检查 API 健康 +curl https://itsupport.servyou.com.cn/api/health + +# 检查日志 +docker logs wecom_it_backend --tail 50 +``` + +--- + +## 二、蓝绿部署 + +### 2.1 什么是蓝绿部署 + +蓝绿部署通过维护两套环境(Blue/Green)实现零停机部署和快速回滚。 + +### 2.2 部署 Green 环境 + +```bash +cd /opt/wecom-it-desk + +# 构建并启动 Green 环境 +docker-compose -f docker-compose-green.yml up -d + +# 验证 Green 环境 +curl http://localhost:5002/health +``` + +### 2.3 切换流量 + +```bash +# 切换到 Green +sed -i 's/wecom_it_backend:8000/wecom_it_backend_green:8000/' /opt/wecom-it-desk/nginx/nginx.conf +docker restart wecom_it_nginx + +# 切换回 Blue(回滚) +sed -i 's/wecom_it_backend_green:8000/wecom_it_backend:8000/' /opt/wecom-it-desk/nginx/nginx.conf +docker restart wecom_it_nginx +``` + +### 2.4 端口说明 + +| 端口 | 服务 | +|------|------| +| 80/443 | Nginx (生产入口) | +| 5002 | Backend (Green) | +| 5080 | Nginx (Green 测试) | + +--- + +## 三、故障排查 + +### 3.1 常见问题 + +#### 502 Bad Gateway + +1. 检查后端容器是否运行 + ```bash + docker ps | grep backend + ``` + +2. 检查后端日志 + ```bash + docker logs wecom_it_backend --tail 100 + ``` + +3. 重启后端 + ```bash + docker restart wecom_it_backend + ``` + +#### 500 错误 + +详见 [快速诊断-500-错误.md](./快速诊断-500-错误.md) + +#### 通讯链路问题 + +详见 [通讯链路诊断方案.md](./通讯链路诊断方案.md) + +### 3.2 健康检查 + +```bash +# 后端 +curl http://localhost:8000/health + +# Nginx +curl http://localhost/api/health +``` + +--- + +## 四、回滚方案 + +### 4.1 紧急回滚 + +如果部署后出现严重问题,立即执行: + +```bash +# 1. 停止新版本容器 +docker stop wecom_it_backend_green + +# 2. 切换回原环境 +sed -i 's/wecom_it_backend_green:8000/wecom_it_backend:8000/' /opt/wecom-it-desk/nginx/nginx.conf +docker restart wecom_it_nginx +``` + +### 4.2 版本回滚 + +如需回滚到之前版本: + +```bash +# 1. 停止当前版本 +docker stop wecom_it_backend + +# 2. 重新构建指定版本 +git checkout <版本标签> +docker build -t wecom-it-desk-backend:<版本> ./backend + +# 3. 启动 +docker run -d --name wecom_it_backend wecom-it-desk-backend:<版本> +``` + +--- + +## 相关文档 + +- [10-一键部署操作包-v0.7.0.md](./10-一键部署操作包-v0.7.0.md) +- [蓝绿部署指南.md](./蓝绿部署指南.md) +- [快速诊断-500-错误.md](./快速诊断-500-错误.md) +- [通讯链路诊断方案.md](./通讯链路诊断方案.md) +- [12-问题修复记录-20260705.md](./12-问题修复记录-20260705.md) diff --git a/docs/09-部署运维/deploy/02-故障排查.md b/docs/09-部署运维/deploy/02-故障排查.md new file mode 100644 index 0000000..451c441 --- /dev/null +++ b/docs/09-部署运维/deploy/02-故障排查.md @@ -0,0 +1,205 @@ +# 智能IT服务台 - 故障排查手册 + +> **最后更新**:2026-07-05 + +--- + +## 目录 + +1. [常见错误码](#一常见错误码) +2. [网络问题](#二网络问题) +3. [服务问题](#三服务问题) +4. [数据问题](#四数据问题) + +--- + +## 一、常见错误码 + +### 1.1 502 Bad Gateway + +**原因**:Nginx 无法连接到后端服务 + +**排查步骤**: + +1. 检查后端容器状态 + ```bash + docker ps | grep backend + ``` + +2. 检查后端是否健康 + ```bash + docker exec wecom_it_backend curl localhost:8000/health + ``` + +3. 检查后端日志 + ```bash + docker logs wecom_it_backend --tail 100 + ``` + +4. 检查 Nginx upstream 配置 + ```bash + grep -A2 'upstream' /opt/wecom-it-desk/nginx/nginx.conf + ``` + +**解决方案**: + +- 重启后端:`docker restart wecom_it_backend` +- 检查端口:`docker port wecom_it_backend` +- 检查网络:`docker network inspect wecom-it-desk_it-desk-internal` + +### 1.2 500 Internal Server Error + +**原因**:后端代码错误或异常 + +**排查步骤**: + +```bash +# 查看后端错误日志 +docker logs wecom_it_backend --tail 200 | grep -i error + +# 查看具体请求错误 +docker logs wecom_it_backend --tail 500 +``` + +详见 [快速诊断-500-错误.md](./快速诊断-500-错误.md) + +### 1.3 503 Service Unavailable + +**原因**:服务过载或维护中 + +**排查步骤**: + +```bash +# 检查容器资源 +docker stats + +# 检查健康检查状态 +docker inspect wecom_it_backend | grep -A10 Health +``` + +### 1.4 403 Forbidden + +**原因**:IP 白名单限制 + +**排查步骤**: + +```bash +# 检查 Nginx 配置中的白名单 +grep 'allow' /opt/wecom-it-desk/nginx/nginx.conf +``` + +--- + +## 二、网络问题 + +### 2.1 通讯链路诊断 + +详见 [通讯链路诊断方案.md](./通讯链路诊断方案.md) + +### 2.2 DNS 解析问题 + +```bash +# 测试 DNS 解析 +nslookup itsupport.servyou.com.cn + +# 测试内网解析 +nslookup itsupport.servyou.com.cn 10.212.1.1 +``` + +### 2.3 端口连通性 + +```bash +# 测试端口开放 +nc -zv 10.90.5.110 80 +nc -zv 10.90.5.110 443 + +# 测试内部网络 +docker exec wecom_it_nginx curl http://wecom_it_backend:8000/health +``` + +--- + +## 三、服务问题 + +### 3.1 容器启动失败 + +```bash +# 查看容器日志 +docker logs <容器名> + +# 查看详细错误 +docker events --since '10m' + +# 检查资源限制 +docker inspect <容器名> | grep -A5 Memory +``` + +### 3.2 数据库连接失败 + +```bash +# 检查 PostgreSQL +docker exec wecom_it_postgres pg_isready + +# 检查 Redis +docker exec wecom_it_redis redis-cli ping +``` + +### 3.3 WebSocket 连接失败 + +```bash +# 检查 WebSocket 配置 +grep -r 'websocket' /opt/wecom-it-desk/nginx/nginx.conf + +# 检查后端 WebSocket 日志 +docker logs wecom_it_backend | grep -i websocket +``` + +--- + +## 四、数据问题 + +### 4.1 数据不一致 + +```bash +# 检查数据库连接 +docker exec wecom_it_backend python -c "from app.database import get_db; print('OK')" + +# 检查 Redis 连接 +docker exec wecom_it_backend python -c "import redis; r = redis.from_url('redis://:password@redis:6379/0'); print(r.ping())" +``` + +### 4.2 磁盘空间不足 + +```bash +# 检查磁盘 +df -h + +# 检查 Docker 磁盘使用 +docker system df +``` + +--- + +## 快速命令汇总 + +```bash +# 一键健康检查 +docker ps --format '{{.Names}}\t{{.Status}}' + +# 查看所有日志 +docker logs -f wecom_it_backend + +# 重启所有服务 +docker compose restart + +# 查看实时错误 +docker logs --tail 100 -f wecom_it_backend 2>&1 | grep -i error +``` + +--- + +## 相关文档 + +- [快速诊断-500-错误.md](./快速诊断-500-错误.md) +- [通讯链路诊断方案.md](./通讯链路诊断方案.md) +- [WAF转发配置异常排查协助.md](./WAF转发配置异常排查协助.md) diff --git a/docs/09-部署运维/deploy/03-版本记录.md b/docs/09-部署运维/deploy/03-版本记录.md new file mode 100644 index 0000000..d67bf46 --- /dev/null +++ b/docs/09-部署运维/deploy/03-版本记录.md @@ -0,0 +1,80 @@ +# 智能IT服务台 - 版本记录 + +> **最后更新**:2026-07-05 + +--- + +## 版本历史 + +### v0.7.1 (2026-06-23) + +**更新内容**: +- OTP 二次验证功能上线 +- 扫码登录优化 +- 安全性增强 + +**部署包**:[10-一键部署操作包-v0.7.0.md](./10-一键部署操作包-v0.7.0.md) + +**相关文档**: +- [07-扫码登录OTP部署指南-v0.7.0.md](./07-扫码登录OTP部署指南-v0.7.0.md) +- [06-OTP二次验证实现.md](./06-OTP二次验证实现.md) + +--- + +### v0.7.0 (2026-06-16) + +**更新内容**: +- 消息推送策略优化 +- 超时提醒功能 +- 头像同步功能 + +**部署包**:[一键部署操作包-v0.7.0.md](./一键部署操作包-v0.7.0.md) + +--- + +### v0.6.x (历史版本) + +详见 [03-RELEASE-NOTES-v0.7.1-20260623.md](./03-RELEASE-NOTES-v0.7.1-20260623.md) + +--- + +## 问题修复记录 + +### 2026-07-05 + +- Nginx upstream 配置修复 +- 蓝绿部署流程完善 + +详见 [12-问题修复记录-20260705.md](./12-问题修复记录-20260705.md) + +### 2026-06-13 + +- H5 用户端报错修复 +- 后端启动问题修复 + +详见 [04-部署修复记录-20260613.md](./04-部署修复记录-20260613.md) + +--- + +## 版本号规则 + +| 位置 | 规则 | 示例 | +|------|------|------| +| 前端 | v主.次.修订 | v1.5.0 | +| 后端 | v主.次.修订 | v0.7.1 | +| 部署包 | v主.次.发布日期 | v0.7.0-20260623 | + +--- + +## 升级路径 + +### 从 v0.6.x 升级到 v0.7.x + +1. 备份数据 +2. 执行一键部署 +3. 验证功能 +4. 监控日志 + +### 版本回滚 + +详见 [01-部署指南.md](./01-部署指南.md) 中的回滚方案