diff --git a/.cocoon-plan.md b/.cocoon-plan.md index c1ce07b..13d5ed2 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -67,10 +67,20 @@ 1. 后端连接池/keep-alive — 避免每次请求新建连接(优先级高) 2. 监控指标(Prometheus /_metrics)— ✅ 已完成 2026-06-08 3. 虚拟主机 / 多站点 — 低优先级 -4. 加权轮询 / 健康检查 — 负载均衡进阶 +4. 加权轮询 / 主动健康检查 — 负载均衡进阶 +5. 修复 SIGPIPE 导致的进程崩溃 — ✅ 已完成 2026-06-08 ## 最近行动记录 +- 2026-06-08 21:00: **后端被动健康检查 + SIGPIPE 崩溃修复** + - `proxy.h`: 为 `cocoon_proxy_backend_t` 增加健康状态字段(`healthy`/`fail_count`/`success_count`/`last_check`) + - `proxy.c`: 新增 `proxy_relay_backend()` 辅助函数,提取流式转发逻辑,避免两轮循环代码重复 + - `proxy.c`: `proxy_forward()` 优先尝试 healthy 后端,全部失败后再 fallback 到所有后端(含 unhealthy) + - `proxy.c`: 健康阈值:连续 2 次成功恢复,连续 3 次失败标记不健康(被动式检测) + - `main.c`: 新增 `signal(SIGPIPE, SIG_IGN)`,修复客户端提前关闭连接时 `SIGPIPE` 导致进程崩溃的问题 + - 编译零警告,142 单元测试 + 90 集成测试全部通过 + - 提交 `77979b4` 已推送到 `main` + - 2026-06-08 18:00: **Prometheus 指标端点 /_metrics** - `server.c`: 新增 7 个原子计数器(`g_total_requests`, `g_response_2xx/3xx/4xx/5xx/200/404`) - `server.c`: 新增 `update_metrics()` 辅助函数,在 `handle_request` 所有响应路径统一调用