diff --git a/.cocoon-plan.md b/.cocoon-plan.md index aefd161..20479c2 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -47,7 +47,7 @@ ### Phase 5 — 应用网关(进行中) - [x] **FastCGI 协议核心** — 记录编码/解码、参数序列化、响应解析、连接池基础 - [x] **FastCGI 服务器集成** — 将 FastCGI 接入 server.c 请求处理流程,对接 PHP-FPM -- [ ] **反向代理连接池** — HTTP/1.1 后端连接复用,减少握手开销 +- [x] **反向代理连接池** — HTTP/1.1 后端连接复用,减少握手开销 - [ ] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏 - [ ] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O - [ ] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种 @@ -88,6 +88,18 @@ ## 维护记录(Phase 5 — 自然扩展) ++ 2026-06-15 12:17: **Phase 5 — 反向代理连接池完善** + - 新增 `proxy_pool_conn_is_alive()`: 使用 `recv(MSG_PEEK | MSG_DONTWAIT)` 非阻塞检测连接是否被对端关闭 + - 复用前自动剔除失效连接,避免将已关闭的连接再次用于转发请求 + - 新增 `cocoon_pool_stats_t` 统计结构:总请求、命中、新建、超时驱逐、有效性检测失败、活跃/空闲连接数 + - 连接池 `acquire`/`release` 全流程统计追踪,便于运维观测 + - 新增 7 项 proxy 单元测试:连接有效性检测(3 项)、acquire/release 复用循环、空池新建失败边界、统计初始状态 + - 编译验证:零警告,全部通过 + - 单元测试:465 个全部通过 ✓(458 原有 + 7 新增连接池测试) + - 集成测试:115 项全部通过 ✓ + - 提交已推送到 origin main(`b426ab7`) + - 项目状态:Phase 5 进行中,反向代理连接池已完成,下阶段目标:配置热重载校验 + + 2026-06-15 09:17: **Phase 5 — FastCGI 服务器集成完成** - 新增 `fcgi_handler.h` / `fcgi_handler.c`:FastCGI 请求处理器 - 路由匹配:基于前缀匹配,支持最长路径匹配