Skip to content

v1.0.14

Choose a tag to compare

@github-actions github-actions released this 20 Mar 11:55

🔴 Bug 修复

  • 按需启动 POST 请求体丢失(严重): uWS 的 onData 回调中 ArrayBuffer 是借用语义,Buffer.from(ab) 底层数据被后续回调覆盖。改用 Buffer.alloc + copy 确保数据复制
  • 并发按需启动返回 502: 多个请求同时到达离线服务时,只有第一个触发启动,其他请求等待启动完成后再代理
  • transfer-encoding 头冲突: forwardProxyRequest 中过滤 transfer-encoding 头,避免与 content-length 冲突导致后端 400
  • 后端崩溃自动恢复: 检测到后端不可达(ECONNREFUSED)时,自动将非 proxyOnly 服务状态重置为 offline
  • 端口路由并发启动: handlePortBindingRequest 补全 starting/stopping 状态处理,与 hostname 路由保持一致

🔒 安全加固

  • 请求体大小限制 10MB,防止 DoS 攻击
  • WebSocket 消息队列限制 1000 条,防止内存泄漏
  • CRLF 注入防护:请求头值中的 \r\n 被清理
  • 端口路由 WebSocket close handler 补充后端连接清理

🚀 性能优化

  • 去除 undici,恢复原生 http 模块: 吞吐量从 4,523 提升至 5,942 req/s(+31%),延迟从 10.6ms 降至 10.3ms
  • 预编译 CRLF 正则,避免热路径重复创建
  • Set 替代内联条件判断,优化请求头跳过逻辑

🧪 测试(81 个用例全部通过)

  • test-proxy-comprehensive.ts: 23 个综合代理测试
  • test-edge-cases.ts: 15 个极端场景测试
  • test-gateway-robustness.ts: 13 个健壮性测试
  • test-admin-api-lifecycle.ts: 12 个管理 API 生命周期测试
  • test-port-route-start.ts: 9 个端口路由按需启动测试
  • test-security-stability.ts: 9 个安全与稳定性深度测试