更新规划:FastCGI 服务器集成完成,标记 Phase 5 进度
This commit is contained in:
parent
a09452b43c
commit
fb446ac7e6
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user