From d2ffc2a709004bf3ba73f9ac37c68600d1faad35 Mon Sep 17 00:00:00 2001 From: xuans Date: Thu, 1 Oct 2026 05:15:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=8F=8C=20Linux=20=E5=80=99?= =?UTF-8?q?=E9=80=89=E6=9C=8D=E5=8A=A1=E5=81=A5=E5=BA=B7=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充两台正式候选服务器的只读健康检查、管理域名访问结果、任务看板和数据库支持矩阵状态;保留生产验收未通过边界。 --- doc/Linux生产流程测试记录.md | 28 +++++++++++++++++++++ doc/Scert整改任务执行清单.md | 19 ++++++++++++++ doc/Scert整改合并优化清单.md | 13 ++++++++++ doc/构建版本与数据库支持矩阵.md | 18 +++++++++++++ 4 files changed, 78 insertions(+) diff --git a/doc/Linux生产流程测试记录.md b/doc/Linux生产流程测试记录.md index 910236c..32876cd 100644 --- a/doc/Linux生产流程测试记录.md +++ b/doc/Linux生产流程测试记录.md @@ -1043,3 +1043,31 @@ git diff --check 在用配置仍是 `setup_ready=false`,后台域名仍为 `scert-accept-20260914.epwn.uno`,未对其发起签发。下一步需要用户明确管理域名、对应 DNS 写入和精确清理授权,以及不影响 Smail 443 的入口与维护范围,才能继续正式初始化、生产签发、外部 HTTPS/SNI、浏览器登录及真实业务推送。真实故障回退仍未完成,机器可用内存约 300 MiB,容量风险也未解除。 22:17 最终只读复核:Scert PID 仍为 `572525`、重启次数零,MySQL 状态不变;四个本轮测试单元均 inactive、PID 零,19017 无监听。备份摘要及 0700/0600 权限再次通过。此时 Smail 的 443 进程已经变为 PID `571735`,系统有 4095 MiB Swap、可用内存约 634 MiB,与升级时状态不同;本轮未操作 Smail 或 Swap,变更来源尚未核查,不能把升级时的“保持不变”延伸为整个时段。容量风险需依据新环境另做负载验证。 + +## 双 Linux 正式候选健康复核(2026-09-30 21:12) + +本轮使用密码 SSH 进行只读检查,未创建辅助验收脚本,未清理或修改远端业务数据库,未操作 Smail。检查目标为正式候选安装后的服务恢复状态,不替代完整生产业务验收。 + +| 检查项 | `8.137.23.95`(`ikun1`) | `45.136.13.241`(`yc`) | +|---|---|---| +| `Scert` systemd 状态 | `active` | `active` | +| `nginx` systemd 状态 | `active` | `active` | +| `Scert-storage.socket` 状态 | `active` | `active` | +| `https://127.0.0.1:8443/readyz` | HTTP `200` | HTTP `200` | +| Nginx 监听 | `80/443` | `80/443` | +| Scert 内部 HTTPS 监听 | `*:8443` | `127.0.0.1:8443` | + +两台服务器均未发现候选安装覆盖 Nginx `80/443` 监听端口。第二台的 `8443` 仅绑定回环地址仍可由本机 Nginx 代理使用,但证书推送和业务流量尚未通过管理页面完成真实验证,不能据此记录多服务器部署验收通过。 + +### 管理域名只读检查 + +- `https://odacm.cn/` 返回 HTTP `200`,能够读取 Scert Web 首页。 +- 当前本机 DNS 将 `odacm.cn` 解析为 `198.18.0.109`,不是本轮两台测试服务器地址。 +- 因此本轮不把首页 200 记录为公网 DNS、HTTPS/SNI、ACME 或生产入口验收通过;仍需确认真实 DNS 目标、入口归属和证书链路。 + +### 当前结论 + +- [x] 双 Linux 正式候选服务安装后健康状态复核通过。 +- [~] 一域名多服务器、单服务器多域名、证书推送、Nginx reload、失败回滚、恢复接管和重试幂等仍在复核中。 +- [ ] 三数据库生产矩阵、Windows 服务、清库首次初始化、备份恢复、公网 DNS/ACME 和最终生产门禁尚未完成。 +- [!] 本轮不新增 `[✓]`,不以 `/readyz=200` 或首页 200 替代完整生产部署验收。 diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 28aa155..54476b7 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -1388,3 +1388,22 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全 - [~] 进行中:重新执行全量检查、构建 Linux amd64 候选包、部署并通过现有服务器记录复测。 - [ ] 未开始:证书推送、Nginx 配置校验/重载、失败回滚、真实多服务器部署和最终生产门禁。 - [!] 总体验收不得升级:仍为 **P0-03 完成,待复审**,没有新增 `[✓]`。 + +## 本轮任务看板更新(2026-09-30,双 Linux 候选服务健康复核) + +- [x] T1 固化主清单、执行清单和生产门禁矩阵;当前总体验收位置仍为 P0-03,相关清单已同步本轮证据。 +- [~] T2 审查并补齐 P0-10 任务恢复、重试和幂等运行态缺口;本地专项测试已持续通过,统一复审仍未完成。 +- [x] T3 完成全量 Go/前端测试、构建和静态检查;正式候选构建前源码工作区为干净状态。 +- [x] T4 编译正式候选包并部署到两台 Linux 服务器;两台服务器服务、Nginx、存储 socket 均恢复正常。 +- [~] T5 验证一域名多服务器、多域名单服务器、失败回滚和重试幂等;两台服务器的 `/readyz` 已返回 200,但真实业务部署证据和失败恢复证据仍需补齐。 +- [x] T6 更新整改主清单、执行清单、Linux 测试记录和数据库支持矩阵;本轮实机健康检查结果已写入相关文档,等待复审。 +- [ ] T7 输出最终上线结论;在 T5、三数据库矩阵、Windows 服务、清库初始化、公网 HTTPS/DNS/ACME 和备份恢复门禁完成前,不标记全量生产验收通过。 + +### 本轮现场证据摘要 + +- `8.137.23.95`(`ikun1`):`Scert=active`、`nginx=active`、`Scert-storage.socket=active`、内部 `/readyz=200`。 +- `45.136.13.241`(`yc`):`Scert=active`、`nginx=active`、`Scert-storage.socket=active`、内部 `/readyz=200`。 +- `odacm.cn` 首页当前返回 HTTP `200`,但本机解析为 `198.18.0.109`,尚不能作为公网 DNS 指向测试服务器的证据。 +- 本轮只读复核未修改远端数据库、DNS、证书或 Smail 服务。 + +总体验收仍为 **P0-03:完成,待复审**,本轮没有新增 `[✓]`。 diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index e4e3c2e..f32a7b3 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -2024,3 +2024,16 @@ P0-11 生产验收门禁 - [~] 进行中:重新执行全量检查、构建 Linux amd64 候选包、部署并通过现有服务器记录复测。 - [ ] 未开始:证书推送、Nginx 配置校验/重载、失败回滚、真实多服务器部署和最终生产门禁。 - [!] 总体验收不得升级:仍为 **P0-03 完成,待复审**,没有新增 `[✓]`。 + +## 本轮实机复核进度(2026-09-30,双 Linux 候选服务健康检查) + +本轮使用正式候选版本对两台 Linux 服务器进行只读健康复核。结果证明候选服务已安装并能正常提供内部管理接口,但还没有证明完整业务部署、证书推送、失败恢复和公网 DNS/ACME 流程通过,因此总体验收仍保持 **P0-03:完成,待复审**。 + +- [x] 第一台 `8.137.23.95`(主机名 `ikun1`)的 `Scert`、`nginx`、`Scert-storage.socket` 均为 `active`,`https://127.0.0.1:8443/readyz` 返回 HTTP `200`。 +- [x] 第二台 `45.136.13.241`(主机名 `yc`)的 `Scert`、`nginx`、`Scert-storage.socket` 均为 `active`,`https://127.0.0.1:8443/readyz` 返回 HTTP `200`。 +- [x] 两台服务器均监听 Nginx `80/443`;Scert 内部 HTTPS 端口为 `8443`,未发现候选安装覆盖 Nginx 端口的情况。 +- [x] 通过 `https://odacm.cn/` 读取到正式 Web 首页并返回 HTTP `200`;该结果只证明当前网络路径可读取页面,不证明域名公网 DNS 已指向本次两台测试服务器。 +- [!] 当前 `odacm.cn` 的本机 DNS 解析结果为 `198.18.0.109`,与两台测试服务器地址不一致,不能据此记录公网 DNS、HTTPS/SNI 或 ACME 验收通过。 +- [~] 继续进行:通过管理页面完成一个域名绑定多个服务器、一个服务器绑定多个域名、证书推送、Nginx 校验/重载、失败回滚及重试幂等的真实业务复核。 +- [ ] 尚未完成:三数据库生产矩阵、Windows 服务实机、清库后首次初始化、真实公网 DNS/ACME、完整备份恢复和最终生产门禁。 +- [!] 本轮不新增 `[✓]`;自动化测试和健康检查不能替代完整生产部署验收。 diff --git a/doc/构建版本与数据库支持矩阵.md b/doc/构建版本与数据库支持矩阵.md index 1a97786..f7a7e70 100644 --- a/doc/构建版本与数据库支持矩阵.md +++ b/doc/构建版本与数据库支持矩阵.md @@ -1323,3 +1323,21 @@ go test -p 1 -count=1 -json -timeout=6m ./internal/bootstrap 历史补记:生命周期首轮后端组合 136 个叶子通过、5 条条件跳过;完整前端曾为 210 项通过且构建成功。MySQL 5.7 组合曾通过;MySQL 8.0 三条故障注入因创建触发器权限失败,夹具已改为隔离实例管理员创建,尚未重跑。非法项目 ID 曾复现失败,修复亦未重跑。这些均是旧候选记录,不覆盖本节源码;历史日志位于 `artifacts/project-lifecycle-20260928/`。 路径预检只针对同一服务器记录的当前绑定,不把数据库事务延长到 SSH 阶段;同一主机多条服务器记录、在途任务与配置变更协调、远端实际路径及遗留文件占用仍待后续部署闭环。全资源写入和任务授权也未完成,不能将本批多对多开发记作 P0-06/P0-07 整项通过。 + +## 正式候选双 Linux 部署复核(2026-09-30) + +本轮对正式候选包的两台 Linux 部署进行只读健康复核,结果仅更新部署状态,不改变数据库支持矩阵的验收边界。 + +| 维度 | 当前结果 | 证据等级 | +|---|---|---| +| Linux amd64 候选构建 | 已完成,源码工作区干净 | 已构建,等待最终复审 | +| `8.137.23.95` 服务恢复 | `Scert`、Nginx、存储 socket active,内部 `/readyz=200` | 双服务器实机健康证据 | +| `45.136.13.241` 服务恢复 | `Scert`、Nginx、存储 socket active,内部 `/readyz=200` | 双服务器实机健康证据 | +| 一个域名绑定多个服务器 | 代码和自动化测试通过,真实业务绑定尚未完成 | 待生产复审 | +| 一个服务器绑定多个域名 | 代码和自动化测试通过,真实业务绑定尚未完成 | 待生产复审 | +| SQLite | 已有本地和隔离初始化测试 | 不等同于完整生产门禁 | +| MySQL | 历史组合测试和部分专项证据存在,当前候选未完成完整矩阵复跑 | 待复审 | +| PostgreSQL | 当前实机和完整生产矩阵尚未完成 | 未通过 | +| Windows 服务 | 已有隔离构建与启动证据,实机服务验收尚未完成 | 待复审 | + +`odacm.cn` 当前能够返回 Web 首页 HTTP `200`,但本机 DNS 解析为 `198.18.0.109`,与两台测试服务器不一致。因此不能将该结果作为公网 DNS、HTTPS/SNI 或 ACME 通过证据。数据库类型支持声明仍以完整矩阵和生产环境证据为准,当前总体验收不得升级。