121 Commits

Author SHA1 Message Date
xfy
7a2b1d7e03 chore(makefile): 使用 goimports 替代 go fmt 格式化代码
goimports 可同时处理格式化和导入排序。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:58:18 +08:00
xfy
ce43d5c1d6 feat(cache): 新增缓存清理 API
支持通过 HTTP API 主动清理代理缓存,提供精确路径和通配符模式清理。
包含 IP 白名单和 Token 认证支持。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:58:18 +08:00
xfy
612208616c feat(status): 支持 Prometheus 格式输出
新增 Prometheus 格式的状态指标输出,用于监控系统集成。
包含连接数、请求数、缓存、Pool、Upstream、SSL、限流等指标。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:51:28 +08:00
xfy
16069149a3 chore: 新增 golangci-lint 配置
配置项目代码检查规则,保留核心检查,禁用噪音过大的 linters。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:48:32 +08:00
xfy
8ecb48e246 feat(build): 为所有构建命令启用静态链接支持
- 新增 CGO_DISABLE 变量(CGO_ENABLED=0)
- 所有构建目标(build、build-prod、build-perf、build-pgo)均使用静态链接
- 跨平台构建(linux、darwin、windows)同样启用静态链接
- 更新 help 文案反映静态构建特性

静态链接确保二进制文件无外部依赖,便于容器化部署。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 14:54:05 +08:00
xfy
83b2a35715 feat(config): 完善 Resolver/SSL 默认值及 YAML 输出
- 添加 Resolver/SessionTickets/ClientVerify 默认配置
- GenerateConfigYAML 输出改为非注释格式
- 新增 Resolver、SSL 默认值、YAML 可加载性测试

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 14:44:01 +08:00
xfy
be56cae64f docs: 移除废弃的 max_idle_conns 配置示例
该字段已被移除,示例配置中不应再出现。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 14:43:53 +08:00
xfy
909bccc1eb refactor(http2): 使用 textproto.CanonicalMIMEHeaderKey 替代手动实现
使用标准库 net/textproto 提供的规范化函数,确保 HTTP 头键
按照 RFC 7230 规范正确处理,包括 MIME 头的特殊大小写规则。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 13:35:29 +08:00
xfy
392d0b3449 docs: 新增模块 AGENTS.md 文档,更新目录索引
- 新增 http2、integration、resolver、variable 模块 AGENTS.md
- 更新 internal/AGENTS.md 目录表,补充新模块条目
- 更新 docs/prompts.md 添加 generate-config 缺失项分析提示
- 同步更新日期戳至 2026-04-09

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 13:35:29 +08:00
xfy
a298ca7254 feat(config): 完善 GenerateConfigYAML HTTP/2 和认证配置示例输出
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 13:25:47 +08:00
xfy
a7dde660c7 docs: 更新提示词文档,完善 generate-config 分析提示 2026-04-09 13:15:14 +08:00
xfy
e03546a580 feat(config): 完善 GenerateConfigYAML 配置示例输出
新增 Session Tickets、mTLS 客户端验证、auth_request 外部认证、
TCP SSL、DNS resolver 及全局变量配置的 YAML 示例生成
2026-04-09 13:10:15 +08:00
xfy
76213de082 docs: 新增提示词文档,使用 ultrawork 替代 /team 2026-04-09 12:19:22 +08:00
xfy
4d5dda5b69 style(variable): 添加文件末尾换行符 2026-04-09 12:19:22 +08:00
xfy
84c26c61ca style(benchmark): 修复代码格式和忽略无用错误返回值 2026-04-09 12:19:08 +08:00
xfy
668ecde6db feat(variable): 新增全局变量支持,自动注入请求上下文 2026-04-09 12:18:56 +08:00
xfy
412bfebdd8 feat(http2): 新增 HTTP/2 支持,集成到服务器和应用 2026-04-09 12:18:52 +08:00
xfy
42533c31d2 chore: 更新 gitignore 和 go.mod 依赖 2026-04-09 12:18:45 +08:00
xfy
ee71270aa5 docs: 移除废弃文档,更新变量配置说明 2026-04-09 12:18:41 +08:00
xfy
25bdba4e01 test(benchmark): 新增组件级基准测试套件
- 新增 benchmark_context.go 标准化测试上下文构造器
- 新增静态文件处理器基准测试(缓存命中/未命中、try_files)
- 新增访问日志中间件基准测试
- 新增压缩中间件基准测试(gzip/brotli、Pool 复用)
- 新增限流器基准测试(令牌桶、滑动窗口、多客户端并发)
- 新增变量展开基准测试(模板展开、Pool 操作)
2026-04-08 18:25:38 +08:00
xfy
f46b0dee07 feat(benchmark): 新增分层性能回归检测策略
- PR 趋势监控使用宽松阈值,仅警告不阻塞合并
- 定期完整检测使用严格阈值,生成统计报告
- 新增阈值配置文件支持分环境配置
- 回归检测脚本支持 YAML 配置和环境参数
- 新增方差分析脚本用于推导阈值
2026-04-08 18:25:22 +08:00
xfy
8e27ac0f77 docs: 更新提示词文档,使用 /team 替代 /ultrawork
- 将 /ultrawork 替换为 /team(更适合多任务协调)
- 将 /plan 替换为 /ralplan(更适合深度分析)
- 新增完善性能基准测试的任务提示

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 15:03:10 +08:00
xfy
0602796ee1 feat(ratelimit): 新增后台自动清理和优雅关闭
- RateLimiter 启动时自动开启后台清理 goroutine
- 新增 StopCleanup 方法优雅关闭清理 goroutine
- 新增 AutoCleanup 和 StopCleanup 测试

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 15:03:10 +08:00
xfy
4de32812f2 perf(loadbalance): 预计算一致性哈希虚拟节点哈希值
- Target 结构新增 VirtualHashes 字段存储预计算哈希
- 新增 PrecomputeHashes 方法在初始化时计算虚拟节点哈希
- SelectExcludingByKey 使用预计算哈希避免运行时重复计算
- 新增 SelectExcludingByKey 测试和基准测试

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 15:03:10 +08:00
xfy
214ea4e9a6 perf(cache,proxy): 使用 uint64 哈希键优化代理缓存性能
- ProxyCache 的 entries 和 pending map 从 string 改为 uint64 键
- 新增 buildCacheKeyHash 使用 FNV-64a 计算哈希(零分配)
- 增加原始键碰撞验证,防止哈希冲突误匹配
- 更新相关测试和基准测试

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 15:03:10 +08:00
xfy
49d33f8b0c feat(middleware/security): 新增 auth_request 外部认证中间件
- 支持将认证委托给外部服务,根据响应状态码决定请求是否继续
- 配置 URI、Method、Timeout 和自定义 Headers
- 支持 $request_uri 等变量在 Headers 中使用

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:37:29 +08:00
xfy
84d67c8570 feat(handler/static): 新增 alias 指令支持路径别名
- NewStaticHandlerWithAlias 创建带 alias 的静态文件处理器
- alias 与 root 互斥,支持路径替换而非附加
- 新增测试覆盖 alias 路径映射逻辑

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:37:20 +08:00
xfy
d48caf5183 feat(proxy): 新增代理响应临时文件处理,保护内存
- TempFileHandler 检测响应大小,超过阈值写入临时文件
- TempFileCleaner 定期清理过期临时文件
- 避免 SSR 攻击和内存溢出风险

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:37:13 +08:00
xfy
1a9059b1ff feat(stream): 新增 TCP/UDP Stream SSL/TLS 支持
- StreamSSLManager 管理服务端 TLS 终端和客户端 TLS 连接
- 支持证书加载、mTLS 客户端验证
- 并发安全的证书配置管理

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:37:02 +08:00
xfy
b7de258f4e feat(variable): 新增 SSL 客户端证书变量支持
- 新增 ssl_client_verify、ssl_client_serial、ssl_client_subject 等变量
- 支持从 TLS 连接状态提取客户端证书信息
- 用于日志记录和访问控制决策

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:36:53 +08:00
xfy
9d49349ee1 feat(ssl,config): 新增 Session Tickets 和 mTLS 客户端证书验证
- SessionTicketsConfig 支持 TLS 1.3 会话恢复,密钥轮换和持久化
- ClientVerifyConfig 支持双向 TLS 认证,CA 证书池和 CRL
- TLSManager 集成 SessionTicketManager 和 ClientVerifier
- 新增完整测试覆盖密钥轮换和客户端验证逻辑

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:36:47 +08:00
xfy
61455412eb feat(variable,proxy): 新增上游变量支持,集成到代理请求处理
- 新增 upstream_addr、upstream_status、upstream_response_time 等变量
- 新增 UpstreamTiming 结构体捕获连接、首字节、响应时间
- Proxy.ServeHTTP 集成变量上下文,记录上游时间
- 新增测试覆盖上游变量和计时功能

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 14:36:37 +08:00
xfy
b72394eb3b style(handler,server): 格式化测试代码结构体字段对齐
- 对齐 errorpage_test.go、static_test.go、pprof_test.go 中的结构体字段
- 纯代码格式化,无逻辑变更

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 13:30:00 +08:00
xfy
3711b12fad docs(server/pprof): 添加详细函数文档注释,修复注释错字
- 为 pprof.go 和 pprof_impl.go 的所有公开函数添加文档注释
- 包含参数说明、返回值描述、使用示例和注意事项
- 修复注释错字"厉止"→"停止"
- 补充包级文档说明核心功能和用途

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 13:30:00 +08:00
xfy
9495a548e6 feat(proxy,server,logging): 集成变量系统和 DNS 解析器
变量系统集成:
- logging: 访问日志使用 variable 包展开模板
- rewrite: 重写规则支持变量展开
- proxy: 请求/响应头设置支持变量展开

DNS 解析器集成:
- app: 创建并启用 Resolver
- server: SetResolver/GetResolver 方法传递给 proxy
- proxy: SetResolver/Start 方法,后台 DNS 刷新协程
- proxy_dns.go: DNS 刷新逻辑和 IP 直连支持

新增集成测试:
- internal/integration/variable_test.go
- internal/integration/resolver_test.go

文档更新:
- docs/config-reference.md 配置参考文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 11:36:49 +08:00
xfy
5a6f4d351f feat(resolver): 新增 DNS 解析器支持
新增 internal/resolver 包,提供动态 DNS 解析功能:
- Resolver 类型支持配置多个 DNS 服务器
- 内置缓存支持 TTL 和最大条目数限制
- 统计信息追踪查询次数和缓存命中率

配置层面:
- ResolverConfig 支持 addresses/valid/timeout/ipv4/ipv6/cache_size
- 添加配置验证逻辑

Target 增强:
- 新增 hostname/resolvedIPs 字段支持 IP 缓存
- NeedsResolve 方法判断是否需要重新解析
- NewTargetFromConfig 工厂函数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 11:36:49 +08:00
xfy
c95f474539 feat(variable): 新增变量系统支持
新增 internal/variable 包,提供 Nginx 风格的变量展开功能:
- 支持 $remote_addr、$host、$uri、$args 等 30+ 内置变量
- 使用 sync.Pool 优化 VariableContext 分配
- 支持 set_response_info 存储响应状态信息

添加 github.com/google/uuid 依赖用于请求 ID 生成。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 11:36:49 +08:00
xfy
b6f8894d78 test(handler,middleware,server): 新增 try_files、错误页面、pprof 单元测试
- static_test.go: 新增 try_files 配置解析、占位符解析、SPA 场景测试
- errorpage_test.go: 新增错误页面管理器完整测试覆盖
- errorintercept_test.go: 新增错误拦截中间件功能测试
- pprof_test.go: 新增 pprof 性能分析端点测试

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 11:15:39 +08:00
xfy
4d108267c3 docs(nginx): 新增健康检查详解与7个高级模块文档
- 04-proxy-loadbalancing: 新增第18节主动健康检查详解
  - 被动检查vs主动检查对比、NGINX Plus health_check/match指令
  - Stream健康检查、gRPC健康检查、开源替代方案
- 新增 MQTT 模块文档 (33): broker负载均衡、Client ID路由
- 新增 OIDC 模块文档 (34): OpenID Connect认证、JWT验证
- 新增 Keyval 模块文档 (35): 动态键值存储、API管理接口
- 新增 流媒体模块文档 (36): HLS/FLV/MP4伪流媒体配置
- 新增 WebDAV 模块文档 (37): 文件共享服务器配置
- 新增 Zone Sync 模块文档 (38): 多节点状态同步
- 新增 HTTP Tunnel 模块文档 (39): HTTP CONNECT代理隧道
- 更新 README.md 目录索引

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 10:36:34 +08:00
xfy
238fa20e41 docs(config): 在默认配置生成中添加已实现功能的注释示例
新增 client_max_body_size、try_files、next_upstream、error_page 等功能的配置注释

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 10:35:45 +08:00
xfy
ae027b6218 docs: 移除过时的文档文件
清理 docs 目录下不再需要的文档内容。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 10:07:34 +08:00
xfy
d482e44bec refactor(server/pprof): 简化 switch 语句并移除未使用变量
- 将 switch 语句改为更简洁的 case 匹配形式
- 移除未使用的 cpuProfileWriter 变量
- 忽略 Flush/WriteTo 等无关的错误返回值

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 09:58:11 +08:00
xfy
3758f410ff style(benchmark): 修复文件末尾换行符
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 09:58:11 +08:00
xfy
db73a362af docs(update-prompts): 更新提示词文档,移除过时的 plan.md 引用
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 09:58:11 +08:00
xfy
ee4f7a5ca9 refactor(config): 移除已废弃的配置字段
移除以下已标记废弃的字段:
- AuthConfig.MinPasswordLength (auth)
- FileCacheConfig.LRUEviction (file_cache)
- TransportConfig.MaxIdleConns (transport)

同时清理相关的验证逻辑、默认值设置、测试代码和文档。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 09:50:32 +08:00
xfy
b30c84a38b feat(config): 标记废弃字段,新增负载均衡算法验证
- MinPasswordLength 和 MaxIdleConns 添加 Deprecated 注释
- 验证时对废弃字段输出警告提示
- 新增 stream 负载均衡算法有效性验证
- 添加负载均衡算法验证测试用例

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 09:33:55 +08:00
xfy
58e420b3ab docs(config): 新增完整配置字段参考文档
- 添加 docs/config-reference.md,列出所有配置字段及枚举值
- 更新 defaults.go 注释,补充 client_max_body_size、try_files、error_page 字段说明

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-07 22:22:21 +08:00
xfy
b294df740e docs: 更新 README 并添加 CHANGELOG v0.1.0
README 添加徽章、完善特性说明、配置示例、项目结构、开发指南
CHANGELOG 记录初始版本 0.1.0 的完整变更历史

Co-Authored-By: Claude <noreply@anthropic.com>
v0.1.0
2026-04-07 18:28:13 +08:00
xfy
766e9255fa feat(config,server,makefile): 新增 pprof 性能分析端点支持
- 新增 PprofConfig 配置结构,支持路径和 IP 访问控制
- 实现 PprofHandler 处理器,提供 CPU/heap/goroutine/block/mutex profile
- Makefile 新增 build-perf、build-pgo、pgo-collect 目标
- 支持 PGO (Profile-Guided Optimization) 构建

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-07 18:21:03 +08:00
xfy
2688ed6a9c docs: 更新 AGENTS.md 文档,新增 benchmark/netutil/scripts 目录
- 根目录新增 scripts/ 和 .github/ 目录说明
- internal 新增 benchmark/ 和 netutil/ 目录说明
- middleware 新增 bodylimit/ 和 errorintercept/ 目录说明
- 更新日期为 2026-04-07

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 17:51:31 +08:00