Three Dogs 多 Edge 一致性计划
计划状态:进行中
阶段位置:P17 并行工程专项,不改变 P17 当前阶段编号和状态
当前工作包:TD3-4 来源同步与长期观察
📌 结论摘要
本计划解决 threedogs.vip 与 www.threedogs.vip 只存在于 MM、dog 只信任旧 MM IP 的架构不一致问题。目标是把 Three Dogs 纳入现有 edge.yohan.fun 多 Edge 入口模型:MM、d02、DD、dog 均具备相同公网 vhost 和证书,统一通过逻辑 Origin 访问 dog WordPress;dog Origin 使用动态 Edge 来源清单和认证头,不再手工绑定单台 MM。
本计划只解决 Edge 入口故障,不解决 dog 整机故障。第二个 WordPress Origin、数据库和 wp-content 复制属于后续独立项目。
🧱 架构契约
edge.yohan.fun:唯一活动 Edge 身份,继续由 P15 控制器自动切换。origin-threedogs.yohan.fun:稳定逻辑 Origin,当前为dog.yohan.fun。threedogs.vip与www.threedogs.vip:只指向edge.yohan.fun,不再保存物理 IP。- MM、d02、DD、dog:部署同一 Three Dogs 前端 vhost 和覆盖裸域、
www的证书。 - dog Origin:保留唯一 WordPress 实例;来源 IP 从四个 Edge 候选域名动态生成,并同时要求 Origin 认证头。
- 公开 GET/HEAD 使用缓存和
stale-if-error;登录、管理、购物车、结账、API、查询参数和带登录 Cookie 的请求绕过缓存。 - 业务站点故障不得直接触发 Edge DNS 轮换;Edge 能力和业务健康分开验收。
工作包
TD3-0 基线与回退
- 保存 MM 前端配置、dog Origin 配置、证书、当前 DNS 和 UFW 规则。
- 冻结逻辑 Origin、ACME Challenge Alias、来源清单节点和验证方式。
TD3-1 代码与模板
- 新增 Three Dogs Edge 部署脚本、证书脚本和 Dynadot DNS 委派脚本。
- 把
origin-threedogs.yohan.fun纳入 AliDNS 别名控制器。 - 增加本地契约测试,禁止 vhost 保存 MM、dog 或候选 Edge 公网 IP。
TD3-2 证书与 DNS
- 在 Dynadot 建立
_acme-challenge.threedogs.vip和_acme-challenge.www.threedogs.vip到 AliDNS 验证域的 CNAME。 - 四个 Edge 分别通过 AliDNS DNS-01 签发
threedogs.vip + www.threedogs.vip证书并安装续期任务。 - 建立
origin-threedogs.yohan.fun -> dog.yohan.fun。
TD3-3 生产部署与真实 Edge 验证
- 四个 Edge 部署统一前端 vhost、Origin CA 和认证头。
- dog 部署新 Origin vhost、动态来源清单、UFW 同步和 5 分钟 timer。
- 分别通过四个候选公网 IP 固定 SNI 回读裸域和
www。 - 执行一次受控 Edge 切换与回切,验证 DNS、TLS、站点和旧入口。
TD3-4 来源同步与长期观察
- 保持 dog 每 5 分钟刷新 Edge 来源清单和 UFW。
- 监控证书续期、来源解析失败、Origin 认证负向回归和 Edge 切换后的站点可用性。
- 不在本专项内增加 dog WordPress Origin 副本。
验收标准
- 四个候选 Edge 的
threedogs.vip、www.threedogs.vip均返回200。 - 证书 SAN 覆盖裸域和
www,四个 Edge 有效期和续期任务一致。 - Edge vhost 不出现固定 MM、dog 或候选 Edge 公网 IP。
- dog Origin 只接受动态来源清单中的 Edge IP,并要求正确认证头。
- 非授权来源访问
14443/tcp超时或拒绝。 - 手动切换
edge.yohan.fun到 d02 后,权威 DNS 和站点回读通过;随后回切 MM。 proxy.yohan.fun、四个panel-*、Cloudreve、核心 Edge 域名无回归。
回退
- Edge vhost:恢复脚本保存的 last-known-good 并执行
nginx -t后 reload。 - dog Origin:恢复脚本保存的 last-known-good,并恢复原 UFW 来源规则。
- 证书:保留旧证书目录备份;失败时恢复旧文件并 reload。
- DNS:Dynadot 和 AliDNS 写入前均保存记录备份;失败时恢复原记录。
生产验收记录
2026-10-11 已完成生产部署和现场验收:
- Dynadot
_acme-challenge与_acme-challenge.www已委派到_acme-challenge.threedogs-acme.yohan.fun,两个权威 NS 与公共解析器均可回读。 origin-threedogs.yohan.fun -> dog.yohan.fun已由 AliDNS 控制器建立并保存回退备份。- MM、d02、DD、dog 均签发
threedogs.vip + www.threedogs.vipECC 证书,SAN 和到期时间已回读,每日 03:11 续期任务已安装。 - 四个候选公网 IP 固定 SNI 回读
threedogs.vip与www.threedogs.vip均为200。 - dog Origin 来源清单已动态生成四条 Edge Public IPv4,UFW 使用同一来源集合;旧 MM 单 IP 规则已移除。
- 正确认证头通过 Origin,错误认证头返回
403;未授权 101 公网访问14443/tcp超时。 - 真实切换
edge-mm -> edge-d02后 d02 公网站点和 Console 回读通过,随后回切 MM;RR 公共观察点确认 DNS 回到 MM。 - dog
agentmeshos-three-dogs-origin-sync.timer为enabled/active,手工执行 service 的Result=success且重复同步幂等。
分布式底座接入声明
- 接入结论:接入 Network、Credentials 和 Observability;不接入 Nomad、Compute 或 Storage。
- Adapter 归属:不适用;本专项使用版本化维护脚本和 root-only 凭据。
- 执行映射:101 负责代码、测试、GitHub 和协调;四个 Edge 执行本地 Nginx 与证书;dog 执行 Origin 来源同步。
- 数据路径:Nginx 配置、证书和来源清单只存在于节点本地;不迁移 WordPress 数据。
- 凭据路径:AliDNS 凭据和 Origin Token 只在目标节点 root-only 文件;Dynadot 凭据只在 RR/101 root-only。
- 生命周期:DNS CNAME 为长期记录;Origin 来源 timer 持续运行;回退备份保留到验收完成。
- 验收证据:代码测试、提交 SHA、Actions、四个 Edge 公网回读、Origin 负向访问和 Edge 切换/回切。
⚠️ 未决项
| 事项 | 当前事实 | 下一步 |
|---|---|---|
| dog 整机故障 | 仍是单一 WordPress Origin | 按用户确认,本计划不处理;需要时另立 Origin HA 项目 |
| 业务健康告警 | 新专项有本地 Edge 验证,暂不接入自动 DNS 轮换 | 保持告警与入口切换解耦,避免 Origin 故障造成 Edge 抖动 |