Files
pikasTech-unidesk/.agents/skills/unidesk-nginx/SKILL.md
T
2026-07-13 17:36:46 +02:00

3.3 KiB
Raw Blame History

name, description
name description
unidesk-nginx UniDesk Nginx 负载均衡与请求日志服务运维技能。用户提到 Nginx、platform-infra nginx、 nginx-lb-logger、PK01 Nginx、HTTP 负载均衡、NGINX_ROUTES、多负载端口、JSONL 请求日志、 logger API、日志查询下载清理或 LOGGER_API_KEY 时使用。

UniDesk Nginx

通过 platform-infra nginx 运维 owning YAML 选择的 Nginx host-Docker target。 所有正式变更走受控 CLI,不直接修改 PK01 Compose、容器、systemd 或日志文件。

权威入口

  • 配置真相:config/platform-infra/nginx.yaml
  • 受控实现:scripts/src/platform-infra-nginx.ts
  • 通用镜像 Demo/root/demo/nginx-lb-logger
  • 开发边界:docs/reference/platform-infra.md
  • PK01 边界:docs/reference/pk01.md

涉及 YAML 职责拆分时同时加载 $unidesk-ymalops。 涉及跨 host 现场修改或验证时同时加载 $dad-dev$unidesk-trans

高频入口

bun scripts/cli.ts platform-infra nginx plan --target PK01
bun scripts/cli.ts platform-infra nginx apply --target PK01 --dry-run
bun scripts/cli.ts platform-infra nginx apply --target PK01 --confirm
bun scripts/cli.ts platform-infra nginx status --target PK01

apply --confirm 默认返回异步 job。 只用返回的 job status 命令短轮询,禁止改成长 SSH 连接等待完整传输和验证。

操作顺序

  1. 读取 owning YAML,确认 target、routes、资源、镜像产物和 Secret sourceRef
  2. 运行 plan,要求镜像、Compose 插件和 Secret 摘要均有效。
  3. 配置变更先运行 apply --dry-run,确认 mutation 为 false。
  4. 用户要求部署时运行 apply --confirm,跟踪返回的异步 job 到终态。
  5. 运行正式 status,要求镜像 ID、健康接口、日志状态和测试后端清理均通过。

完整操作与配置变更见 references/operations.md。 失败分层和已确认陷阱见 references/troubleshooting.md

不可越过的边界

  • 通用镜像只在 NC01 构建;Master server 和 PK01 不执行镜像构建。
  • PK01 正式部署只走 platform-infra nginx apply,不使用 Demo Compose 代替。
  • target、监听端口、上游、资源、日志上限和 API key 来源只写 owning YAML。
  • Nginx 配置使用 NGINX_*,日志收集和管理配置使用 LOGGER_*
  • API key 只披露 sourceRef、key 名、presence 和 fingerprint,禁止打印明文。
  • 除健康接口外,logger API 必须传入 X-API-Key
  • JSONL 只能由 Nginx access_log 写入;验证器不得生成或补写日志。
  • PK01 验证只发送四个串行请求,不执行压力测试。
  • 验证后端必须是临时 host Python/systemd 服务,不能放进容器。
  • 验证退出后必须删除后端脚本和 unit,只保留 Nginx 容器。
  • 本机临时 HTTP 制品源由 CLI 创建和撤销,不得作为常驻下载服务。

关闭标准

  • backendSequenceloggedSequence 都是 backend-1,backend-2,backend-1,backend-2
  • 未认证 logger API 返回 401
  • info、tail、download 和 clear 均成功。
  • status.summary.ok=true、健康状态为 200、镜像 ID 匹配。
  • activeTestBackends=0,测试脚本和 systemd unit 不存在。
  • 本机临时 HTTP 目录和进程已经撤销。