更新规划:FastCGI 服务器集成完成,标记 Phase 5 进度

This commit is contained in:
xfy911 2026-06-15 09:28:45 +08:00
parent a09452b43c
commit fb446ac7e6

View File

@ -46,7 +46,7 @@
### Phase 5 — 应用网关(进行中)
- [x] **FastCGI 协议核心** — 记录编码/解码、参数序列化、响应解析、连接池基础
- [ ] **FastCGI 服务器集成** — 将 FastCGI 接入 server.c 请求处理流程,对接 PHP-FPM
- [x] **FastCGI 服务器集成** — 将 FastCGI 接入 server.c 请求处理流程,对接 PHP-FPM
- [ ] **反向代理连接池** — HTTP/1.1 后端连接复用,减少握手开销
- [ ] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏
- [ ] **内存响应缓存** — 基于 LRU + TTL文件不大时直接缓存到内存避免重复磁盘 I/O
@ -88,6 +88,30 @@
## 维护记录Phase 5 — 自然扩展)
+ 2026-06-15 09:17: **Phase 5 — FastCGI 服务器集成完成**
- 新增 `fcgi_handler.h` / `fcgi_handler.c`FastCGI 请求处理器
- 路由匹配:基于前缀匹配,支持最长路径匹配
- CGI 参数构建:从 HTTP 请求提取 REQUEST_METHOD、SCRIPT_NAME、PATH_INFO、QUERY_STRING 等标准 CGI 变量
- HTTP 头转 CGI 变量Host 等头自动转为 HTTP_ 前缀大写环境变量
- 响应解析:检测 HTTP/ 开头的完整响应直接透传;否则解析 Status: 头或默认 200
- 连接池TCP / Unix Socket 复用,支持 pool_size 和 timeout_ms 配置
- 配置解析扩展(`config.c`
- 新增 `cocoon_fcgi_rule_t` / `cocoon_fcgi_config_t` 结构体
- 命令行支持:--fastcgi-prefix、--fastcgi-target、--fastcgi-pool-size、--fastcgi-timeout
- 配置文件支持fastcgi 规则段,最大 4 条规则
- 请求处理链集成(`server.c`
- 在 `handle_request` 中反向代理之后、GET/HEAD 检查之前插入 FastCGI 分发
- `server_context` 添加 `fcgi_config` 字段
- `server_create` 中调用 `fcgi_handler_init` 初始化连接池
- `server_destroy` 中调用 `fcgi_handler_destroy` 释放资源
- `Makefile` 更新:加入 `fcgi_handler.c` 编译目标,测试规则同步更新
- `.gitignore` 修复:拆分 `tests/unit/test_*.otests/fixtures/uploads/` 为独立规则
- 编译验证:零警告,全部通过
- 单元测试458 个全部通过 ✓1 个 Ignored为预期行为
- 集成测试115 项全部通过 ✓
- 提交已推送到 origin main`a09452b`
- 项目状态Phase 5 进行中FastCGI 服务器集成已完成,下阶段目标:反向代理连接池
+ 2026-06-15 08:17: **Phase 5 — FastCGI 协议核心实现**
- 新增 `fastcgi.c` / `fastcgi.h`FastCGI 1.0 协议客户端完整实现
- 记录编码/解码BEGIN_REQUEST、PARAMS、STDIN、STDOUT、STDERR、END_REQUEST