重构 Nginx 管理器和同步服务,添加运行时确保功能,更新相关测试用例和文档

This commit is contained in:
ryan
2026-03-09 23:50:55 +08:00
parent 8da574f9e5
commit 29f19c5edd
8 changed files with 213 additions and 21 deletions
+6 -4
View File
@@ -133,9 +133,11 @@ go build -o atsflare-agent ./cmd/agent
2. Agent 拉取当前激活版本
3. Agent 写入 `route_config_path`
4. Agent 使用 `nginx_path` 指向的独立 Nginx,或自动准备 Docker Nginx 容器
5. Agent 执行 `nginx -t`
6. Agent 执行 `nginx -s reload`
7. Agent 上报成功结果
5. Agent 启动时先校验本地路由文件 checksum 与控制面激活版本是否一致
6. Docker 模式下会重建容器,避免复用故障容器
7. Agent 执行 `nginx -t`
8. Agent 执行 `nginx -s reload`
9. Agent 上报成功结果
### 4.4 验证管理端状态
@@ -188,7 +190,7 @@ npm run build
- Agent 运行器当前任一心跳或同步失败会直接退出,需要结合进程管理器拉起
- 尚未提供 systemd unit 文件
- 尚未提供 Docker Compose 或一键部署脚本
- Docker 模式当前默认直接启动单容器 Nginx,挂载与端口策略仍是 MVP 水平
- Docker 模式当前默认直接重建单容器 Nginx,挂载与端口策略仍是 MVP 水平
- 前端页面已可用,但交互和校验仍是 MVP 水平
- 目前联调说明以手工步骤为主,未内置完整自动化端到端脚本
+2
View File
@@ -67,6 +67,8 @@ Agent 使用 Go 单体程序:
* 未配置 `nginx_path` 时,默认通过 Docker 运行独立 Nginx 容器
* 管理本机 Nginx 路由配置文件和 reload
* Agent 生成资源默认统一落在 `./data`,也允许通过单个基路径配置覆盖
* Agent 启动时会校验本地路由文件哈希与控制面激活版本是否一致
* Docker 模式启动时会重建独立 Nginx 容器,避免复用故障容器
### Nginx 管理边界
+3
View File
@@ -266,6 +266,8 @@ Agent 必须满足以下行为:
* 上报最终应用结果
* 优先使用 `nginx_path`
* 未配置 `nginx_path` 时自动准备并使用 Docker Nginx 容器
* 启动时先校验本地路由文件 checksum 与控制面激活版本是否一致
* Docker 模式启动时应重建容器,而不是继续复用异常停止的旧容器
### 7.3 容错规范
@@ -275,6 +277,7 @@ Agent 必须满足以下行为:
* 下载失败时,不修改本地配置
* 配置校验或 reload 失败时,自动尝试回滚
* 本地状态文件损坏时,允许重新初始化,但不能删除正在生效的 Nginx 配置
* Docker 容器异常停止时,启动阶段应自动重建容器并重新校验配置
### 7.4 外部命令规范