From 8e7ce502af73eff7a2ac76ae2f36954451b92434 Mon Sep 17 00:00:00 2001 From: xfy911 Date: Mon, 15 Jun 2026 12:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.cocoon-plan.md=20?= =?UTF-8?q?=E2=80=94=20=E8=AE=B0=E5=BD=95=E8=BF=9E=E6=8E=A5=E6=B1=A0?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cocoon-plan.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 请求处理器 - 路由匹配:基于前缀匹配,支持最长路径匹配