This commit is contained in:
parent
522685e55b
commit
2e13ee2913
@ -52,7 +52,7 @@
|
||||
- [x] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O
|
||||
- [x] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种
|
||||
- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成(目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprint),OpenSSL 3.0 零警告;服务器端 HTTP-01 挑战响应路由已完成(`/.well-known/acme-challenge/` 返回 keyAuthorization);配置集成与自动续期后台协程已完成(2026-06-16)
|
||||
- [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
|
||||
- [x] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
|
||||
- [ ] **YAML / TOML 配置格式** — 配置验证时更友好
|
||||
- [x] **systemd 服务文件** — 一键安装成系统服务,支持 SIGHUP 热重载、安全加固、自动恢复
|
||||
- [ ] **Docker 多阶段构建** — 减小最终镜像
|
||||
@ -262,3 +262,26 @@
|
||||
- 集成测试:111 项通过(4 项反向代理环境相关失败,非项目代码问题)
|
||||
- 提交已推送到 origin main 和 rua main(`277bb70`)
|
||||
- 项目状态:Phase 5 进行中,systemd 服务文件已完成,下阶段目标:ACME 服务器端 HTTP-01 挑战响应路由 + 自动续期集成
|
||||
|
||||
+ 2026-06-16 15:17: **Phase 5 — 带宽限速 / 流量整形(Token Bucket 算法)**
|
||||
- 新增 `throttle.h` / `throttle.c`:Token Bucket 双层限速实现
|
||||
- `throttle_init()`: 初始化令牌桶,支持 rate(bytes/sec)和 burst(突发容量)
|
||||
- `throttle_consume()`: 消费 N 字节,返回需要等待的微秒数(0 = 无需等待)
|
||||
- `throttle_set_fd()` / `throttle_clear_fd()` / `throttle_lookup()`: fd 映射表操作,侵入性最小
|
||||
- 全局 fd 映射表受 `g_throttle_mutex` 保护,线程安全
|
||||
- `cocoon.h`: 配置结构体新增 `throttle_conn_rate`(单连接限速)和 `throttle_global_rate`(全局限速)
|
||||
- `server.c`:
|
||||
- 连接创建时自动初始化 per-connection throttle(如果 `throttle_conn_rate > 0`)
|
||||
- `close_connection()` 中自动 `throttle_clear_fd()` 并释放 throttle 内存
|
||||
- `server_create()` 中初始化 global throttle(如果 `throttle_global_rate > 0`)
|
||||
- `server_destroy()` 中释放 global throttle
|
||||
- `static.c`: `send_all()` 自动查表限速,TLS 路径保持原样(TLS 层已有流控)
|
||||
- `platform.c`: `cocoon_file_send()` 限速启用时回退到 read+write 循环,逐 chunk 限速;无限速时仍优先 sendfile 零拷贝
|
||||
- `proxy.c`: `send_all_fd()` 加入限速检查
|
||||
- `config.c`: 解析 JSON 配置中的 `throttle` 对象(`conn_rate` / `global_rate`),支持配置文件和命令行覆盖
|
||||
- `config.h`: 更新 `config_merge` 签名,新增 `has_throttle_conn_rate` / `has_throttle_global_rate` 参数
|
||||
- `Makefile`: 将 `throttle.c` 加入 `SRCS` 和所有相关单元测试编译规则
|
||||
- 编译验证:零警告,全部通过(仅外部 coco 库 GNU-stack linker 提示)
|
||||
- 集成测试:109 项通过(6 个失败为已知反向代理环境 404 问题,非代码问题)
|
||||
- 提交已推送到 origin main 和 rua main(`522685e`)
|
||||
- 项目状态:Phase 5 进行中,带宽限速已完成,下阶段目标:YAML / TOML 配置格式 或 Docker 多阶段构建
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user