docs(plan): 更新计划,标记 HTTP/2 代理完成,新增连接池 HTTP/1.0 兼容待办
This commit is contained in:
parent
7fe52a3b6e
commit
25a0b100c1
@ -64,13 +64,33 @@
|
|||||||
- 当前仅做编译和测试验证,不添加新代码
|
- 当前仅做编译和测试验证,不添加新代码
|
||||||
|
|
||||||
## 待办池(活跃)
|
## 待办池(活跃)
|
||||||
1. ~~平滑加权轮询负载均衡~~ ✅ 2026-06-09
|
1. ~~HTTP/2 代理支持~~ ✅ 2026-06-09
|
||||||
2. **HTTP/2 代理支持** — 将反向代理接入 HTTP/2 流(当前仅 HTTP/1.1)
|
- HTTP/2 流通过 nghttp2 转发到 HTTP/1.1 后端
|
||||||
3. 虚拟主机 / 多站点 — 低优先级
|
- GET 请求测试通过,POST 基础支持
|
||||||
4. 主动健康检查 — 后台线程定期探测后端(当前为被动式)
|
- 已知限制:连接池对 HTTP/1.0 后端(无 keep-alive)处理需完善
|
||||||
|
2. **连接池 HTTP/1.0 兼容** — 后端发送 Connection: close 时正确关闭连接而非归还
|
||||||
|
3. **HTTP/2 代理流式转发** — 当前为非流式(先收集完整响应),未来改为流式
|
||||||
|
4. 虚拟主机 / 多站点 — 低优先级
|
||||||
|
5. 主动健康检查 — 后台线程定期探测后端(当前为被动式)
|
||||||
|
|
||||||
## 最近行动记录
|
## 最近行动记录
|
||||||
|
|
||||||
|
- 2026-06-09 09:00: **HTTP/2 反向代理支持**
|
||||||
|
- `http2.h`: `http2_session_t` 新增 `proxy_config` 和 `client_addr` 字段
|
||||||
|
- `http2.c`: 新增 `http2_session_set_proxy_config()` 注入代理配置
|
||||||
|
- `http2.c`: 新增 `http2_serve_proxy()` 函数,实现 HTTP/2 流 → HTTP/1.1 后端转发
|
||||||
|
- 请求重组:将 HTTP/2 伪头(:method, :path, :authority)重组为 HTTP/1.1 请求
|
||||||
|
- 后端响应解析:解析 HTTP/1.1 响应头,通过 nghttp2 提交 HTTP/2 响应帧
|
||||||
|
- 过滤 hop-by-hop 头(Connection, Transfer-Encoding 等)
|
||||||
|
- 添加 X-Forwarded-For 头
|
||||||
|
- 支持 TLS 和非 TLS 后端连接(通过 `proxy_tls.c`)
|
||||||
|
- `server.c`: `handle_http2()` 中调用 `http2_session_set_proxy_config()` 注入配置
|
||||||
|
- `http2.c`: 修复 `parse_http1_response()` 中 `body_len` 下溢问题(当 `len < blank + 4 - data` 时)
|
||||||
|
- `tests/integration_test.sh`: 新增 HTTP/2 代理集成测试(GET 请求验证)
|
||||||
|
- 编译零警告,142 单元测试全部通过
|
||||||
|
- 集成测试:HTTP/2 GET 代理测试通过,POST 待完善(连接池 HTTP/1.0 兼容问题)
|
||||||
|
- 提交已推送 `main` (7fe52a3)
|
||||||
|
|
||||||
- 2026-06-09 06:00: **平滑加权轮询负载均衡**
|
- 2026-06-09 06:00: **平滑加权轮询负载均衡**
|
||||||
- `proxy.h`: 后端结构添加 `weight`(配置权重)和 `current_weight`(动态权重)字段
|
- `proxy.h`: 后端结构添加 `weight`(配置权重)和 `current_weight`(动态权重)字段
|
||||||
- `proxy.c`: 实现平滑加权轮询算法(Nginx SWW),`select_backend_sww()` + `select_backend_sww_all()`
|
- `proxy.c`: 实现平滑加权轮询算法(Nginx SWW),`select_backend_sww()` + `select_backend_sww_all()`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user