03b0df2c69
feat(proxy): 实现代理缓存功能与一致性哈希支持
...
- 新增缓存命中/过期/刷新逻辑
- 实现缓存锁防止缓存击穿 (stale-while-revalidate)
- 支持一致性哈希按 uri/ip/header 选择目标
- 新增 getProxyCacheStats 收集缓存统计
- 集成连接数限制中间件 (ConnLimiter)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:57:48 +08:00
351f477822
feat(middleware): 增强 rewrite 安全性,添加 ReDoS 保护
...
- 新增 validateRegexSafety 检测危险正则模式
- 防止嵌套量词导致的灾难性回溯攻击
- 限制正则模式长度 (max 1000 chars)
- 补充 compression 和 accesslog 文档注释
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:57:40 +08:00
98736e1f1c
feat(security): 增强访问控制安全性,支持可信代理配置
...
- 新增 TrustedProxies 配置项,安全解析 X-Forwarded-For
- 防止 IP 伪造攻击,仅信任来自可信代理的头部
- 使用右侧非可信 IP 作为真实客户端 IP
- 改进连接数限制中间件集成
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:57:32 +08:00
ae8ea1ce0c
docs: 添加 nginx 高级主题文档 (Lua/安全/API网关/动态配置)
...
新增 5 篇深度文档:
- Lua 模块深度指南:OpenResty、ngx_lua、cosocket
- 安全深度指南:WAF、DDoS 防护、OWASP Top 10
- API 网关配置:路由设计、JWT 验证、限流配额
- 动态配置与服务发现:etcd/Consul、nginx-unit
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:57:22 +08:00
d42844b2fa
test(app,handler,server,http3): 补充单元测试覆盖率
...
- app: 添加信号处理、配置重载、日志重开测试
- handler/sendfile: 添加小文件、偏移量、错误情况测试
- server: 添加统计追踪、监听器、TLS配置测试
- http3: 新增 adapter 和 server 单元测试
- 格式修复: 末尾换行符、注释对齐
- 文档: AGENTS.md 添加 http3 模块说明
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:25:21 +08:00
530ba5e36e
docs: 添加项目 README 文档
...
介绍项目特性、安装、配置、架构等信息
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:23:51 +08:00
2c54e512d8
docs(config): 改进配置示例格式和注释
...
- 改进一致性哈希配置注释说明
- 改进滑动窗口限流配置注释说明
- 更新 gzip_static 配置示例
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:09:15 +08:00
ec916d882d
feat(proxy,middleware,config): 集成配置与代码差异修复
...
- 集成一致性哈希负载均衡到 proxy.go,支持 hash_key 和 virtual_nodes 配置
- 集成滑动窗口限流算法到 ratelimit.go,支持 algorithm 选择
- 应用 Transport 连接池配置到 createHostClient
- 集成 HSTS 配置到安全头部中间件
- 补充 config.example.yaml 缺失配置(http3、gzip_static、sliding_window)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 16:08:45 +08:00
d6367a1c38
feat(http3,docs,middleware): 实现 Phase 9 HTTP/3 与性能优化扩展
...
- 新增 HTTP/3 (QUIC) 服务器支持,集成到 App 生命周期管理
- 新增 nginx 内置变量速查表文档
- 完善多篇 nginx 文档(代理、安全、流、限流、HTTP/2/3、核心事件)
- 新增一致性哈希负载均衡、gzip_static、滑动窗口限流中间件
- 扩展配置支持 HTTP/3 和日志格式选项
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 15:39:06 +08:00
a627d58832
test(server): 补充 buildMiddlewareChain 单元测试
...
- 新增访问日志、访问控制、限流中间件测试
- 新增重写、压缩、安全头中间件测试
- 新增全中间件组合测试
- 重命名 TestSetListeners 为 TestUpgradeSetListeners 避免命名冲突
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:15:37 +08:00
f894787a2b
test(handler,server,proxy): 补充单元测试覆盖率
...
- sendfile_test.go: 新增 copyFile、platformSendfile、getSocketFd 测试
- upgrade_test.go: 新增监听器设置、PID文件处理、继承监听器测试
- websocket_test.go: 新增 WebSocket 桥接器、数据转发、连接关闭测试
- status_test.go: 新增 StatusHandler CIDR/IP访问控制、状态收集测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:02:51 +08:00
5e19d1a5ee
docs(plan): 添加 Phase 9 规划 - HTTP/3 与性能优化扩展
...
- 规划 HTTP/3 (QUIC) 支持,使用 quic-go 库
- 规划一致性哈希负载均衡算法
- 规划 gzip_static 预压缩支持
- 规划滑动窗口限流算法
- 更新 update-prompts.md 添加新分析任务
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:02:40 +08:00
a1aa05406c
refactor(app): 集成 AppLogger 统一管理启动/停止/信号日志
...
- 使用 AppLogger 替代 fmt.Print/Fprintf 输出启动停止消息
- 支持 text/json 双格式输出,json 格式输出结构化日志
- 信号处理、配置重载、热升级等流程统一使用 AppLogger
- 重载配置时重建 AppLogger 以应用新格式配置
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:02:34 +08:00
94a2ae7113
feat(config,logging): 增强日志配置,支持全局格式和 nginx combined 格式
...
- 新增全局日志格式配置 (text/json),控制启动/停止日志输出格式
- 访问日志默认格式改为近似 nginx combined 格式
- 支持 $remote_user 变量,BasicAuth 认证成功后存储用户名到上下文
- 扩展 config.example.yaml 虚拟主机配置说明
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 15:02:27 +08:00
ac9153f09d
fix(proxy,stream,server): Phase 8 问题修复与功能完善
...
- WebSocket 代理集成:handleWebSocket 现调用 ProxyWebSocket 实现
- 删除 UDP Stream 冗余代码:移除 udpListener 类型及相关测试
- 热升级监听器继承:改用 net.Listen + Serve 模式支持监听器传递
- 代码格式修复:注释格式调整、字段对齐、文件末尾换行符
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 14:28:00 +08:00
95030cd68a
docs: 更新 AGENTS.md 文档
...
添加各模块的 AGENTS.md 文档文件,记录模块职责和代码结构
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 14:07:42 +08:00
c70ab305b7
test(app,proxy,ssl,stream): 完善测试覆盖率
...
- app: 添加 NewApp/SetPidFile/SetLogFile/sigName 测试
- proxy: 扩展健康检查器测试
- ssl: 添加 TLS 配置和 Close 方法测试
- stream: 添加负载均衡器和 UDP 会话测试
覆盖率从 55.4% 提升至 60.3%
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 13:36:43 +08:00
80936ae66b
feat(server,proxy,ssl,docs): 完成 Phase 7 功能完善
...
主要变更:
- WebSocket 代理支持 (internal/proxy/websocket.go)
- OCSP stapling 实现 (internal/ssl/ocsp.go)
- 监控状态端点 (internal/server/status.go)
- 新增 nginx 模块文档 (19-24)
- UDP 代理超时配置支持
- 多模块代码注释完善和功能增强
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 13:13:12 +08:00
aa64329ba2
feat(server,handler,proxy,app): 集成未使用的中间件和模块
...
- 集成 6 个安全/功能中间件到 server.go
- 集成 GoroutinePool 和 SendFile 零拷贝
- 集成 FileCache 和 ProxyCache 缓存模块
- 集成 Stream TCP/UDP 代理模块
- 添加 Stream 配置结构到 config.go
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 11:27:53 +08:00
ac36cb629f
docs: 添加 nginx 模块翻译文档
...
- 翻译 nginx grpc、uwsgi、高级特性、内部重定向、镜像切片、memcached 模块文档
- 添加模块大纲和更新提示文档
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 10:55:02 +08:00
6f3ecb0a9f
feat(middleware,server): 实现访问日志中间件
...
- 新增 accesslog 中间件,记录请求方法、路径、状态码、响应大小和处理时间
- 集成到 Server 的 single 和 vhost 模式
- 支持 graceful shutdown 时关闭日志文件
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 10:54:53 +08:00
9d24263918
feat(stream,server,handler): 实现 Phase 6 性能优化和热升级
...
新增功能:
- stream 模块: 流式传输支持,优化大文件和实时数据传输
- Goroutine 池: 限制并发数量,减少调度开销
- 优雅升级: 零停机热升级,继承父进程监听器
- sendfile: 零拷贝文件传输,大文件直接从内核传输
重构改进:
- App 结构体封装,支持热升级和信号处理
- 配置结构字段对齐和代码清理
- 完善错误处理和日志记录
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 10:39:22 +08:00
b517fecc86
docs(plan): 更新 Phase 5 开发进度为已完成
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:11:55 +08:00
87a22b79f2
feat(middleware): 实现 URL 重写中间件
...
- 支持正则表达式匹配和替换
- 可配置多条重写规则
- 支持捕获组引用 ($1, $2 等)
- 规则按顺序依次应用
- 完整单元测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:11:50 +08:00
359d7e95f3
feat(middleware): 实现 gzip/deflate 响应压缩中间件
...
- 支持 gzip 和 deflate 压缩算法
- 根据 Accept-Encoding 自动选择压缩方式
- 可配置压缩级别和最小压缩阈值
- 跳过已压缩内容和小文件
- 完整单元测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:11:43 +08:00
8b2f2521f1
feat(cache): 实现文件缓存模块
...
- 基于内存的缓存存储,支持过期时间
- LRU 淘汰策略,控制最大条目数
- 支持文件元数据缓存(大小、修改时间)
- 线程安全的读写操作
- 完整单元测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:11:31 +08:00
575de90398
feat(logging): 增强日志模块,支持访问/错误日志分离
...
- 新增 Logger 结构体,分离访问日志和错误日志
- 支持 stdout/stderr/文件输出目标
- 实现 nginx 格式变量日志记录
- 添加日志文件关闭方法
- 修复 parseLevel 大小写处理
- 新增完整单元测试覆盖
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:11:23 +08:00
d4998e5634
feat(ssl,security): 实现 SSL/TLS 和安全中间件模块
...
- ssl: TLS 配置管理、证书加载、SNI 支持、现代安全默认值
- security/auth: HTTP Basic Auth (bcrypt/argon2id 密码哈希)
- security/ratelimit: 令牌桶限流、连接数限制
- security/access: IP 访问控制 (CIDR allow/deny)
- security/headers: 安全响应头 (X-Frame-Options, CSP, HSTS 等)
Phase 4 完成
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 09:53:18 +08:00
e2c37e2bf8
feat(server,proxy,loadbalance): 集成反向代理和虚拟主机模式
...
- server: 集成反向代理路由,支持单服务器和虚拟主机两种模式
- loadbalance: 使用 atomic.Bool 替代 bool 实现并发安全的健康状态
- proxy: 适配 atomic.Bool,移除 HealthChecker 不必要的互斥锁
- config: 添加服务器超时配置字段,验证负载均衡算法
- 新增 algorithms.go 提供算法验证函数
- 新增 config.example.yaml 配置示例文件
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 09:26:20 +08:00
0128898136
docs(proxy,loadbalance): 翻译英文注释为中文
...
将 internal/proxy 和 internal/loadbalance 模块的英文注释翻译为中文,
保持项目注释语言一致性。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 18:12:44 +08:00
6ae7e32ef1
feat(proxy,loadbalance): 实现反向代理和负载均衡模块
...
实现 Phase 3 核心功能:
- loadbalance: 轮询、加权轮询、最少连接、IP哈希四种算法
- proxy: HTTP 反向代理、健康检查、故障转移
- 所有实现均为并发安全,使用 atomic 操作
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 17:06:29 +08:00
179aacac04
docs: 添加模块上下文文档 (AGENTS.md)
...
为各模块添加上下文文档,帮助 AI 助手理解代码结构:
- AGENTS.md: 项目根目录上下文
- docs/AGENTS.md: 文档目录说明
- internal/AGENTS.md: 内部包结构概览
- 各子模块 AGENTS.md: 模块特定上下文和约定
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 16:25:51 +08:00
413e418b37
test: 添加 handler/logging/middleware/server 模块单元测试
...
- internal/handler/static_test.go: 21 个测试用例覆盖静态文件服务和路径遍历安全
- internal/handler/router_test.go: 9 个测试用例覆盖路由注册和方法区分
- internal/logging/logging_test.go: 7 个测试用例覆盖日志级别解析
- internal/middleware/middleware_test.go: 4 个测试用例覆盖中间件链逆序包装
- internal/server/server_test.go: 5 个测试用例覆盖服务器创建和停止
- internal/server/vhost_test.go: 18 个测试用例覆盖虚拟主机路由
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 16:21:49 +08:00
b445bca96a
feat(server): 实现基础 HTTP 服务器核心功能
...
使用 fasthttp 替代 net/http,实现 Phase 2 核心模块:
- HTTP 服务器:fasthttp.Server 配置超时和连接限制
- 路由系统:fasthttp/router 基于 radix tree 匹配
- 静态文件服务:安全检查、索引文件支持
- 日志系统:zerolog 结构化日志
- 中间件框架:链式组合接口
- 虚拟主机管理:按 Host 头选择处理器
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 15:23:54 +08:00
06e8d55ef5
test(config): 添加配置模块单元测试
...
- 添加 internal/app 包测试(版本显示、配置生成)
- 添加 internal/config 包测试(加载、保存、验证、默认值)
- 更新 docs/plan.md 日志系统设计(选用 zerolog)
- 更新 .gitignore 添加 coverage.html
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 14:40:56 +08:00
f3e5aad21e
feat(app): 添加信号处理和完善配置结构
...
- 添加 SIGTERM/SIGINT/SIGQUIT 信号处理和优雅停止逻辑
- 完善安全配置:访问控制、速率限制、认证参数
- 完善性能配置:Goroutine 池、连接限制
- 改进配置生成 YAML 格式和注释说明
- 添加编译产物 lolly 到 gitignore
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 14:30:24 +08:00
77b0eccf4c
refactor(app): 将应用逻辑抽取到 internal/app 包
...
将版本信息和核心运行逻辑从 main.go 移至 internal/app/app.go,
main.go 仅保留 CLI 参数解析和入口调用。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 14:12:06 +08:00
a265597d14
feat(config): 实现配置加载模块和 CLI 参数解析
...
- 添加 internal/config 包,包含配置结构定义、默认值和验证逻辑
- 实现 CLI 参数解析 (-c/--config, -v, --generate-config)
- 添加 yaml.v3 依赖用于配置文件解析
- 简化 plan.md 中的配置测试示例
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:07:08 +08:00
3fb259419b
docs(plan): 格式化开发计划文档
...
- 调整列表格式和缩进
- 移除各阶段提交信息模板(冗余)
- 简化项目目录结构描述
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 13:26:55 +08:00
0301061a52
chore: 添加配置文件到 gitignore
...
- lolly.yaml
- config.yaml
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 13:26:49 +08:00
56c6ba3731
chore(build): 添加 Makefile 构建脚本和程序入口
...
- Makefile: 跨平台构建、测试、代码质量检查命令
- main.go: 程序入口,支持版本信息注入
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 13:23:54 +08:00
bdb774510f
docs(plan): refine development plan with detailed implementation
...
- Add middleware framework as Phase 2 prerequisite
- Move basic logging system to Phase 2 for debugging support
- Add TLS security defaults (disable TLSv1.0/1.1, secure ciphers)
- Expand security headers (CSP, HSTS, Referrer-Policy, Permissions-Policy)
- Add cache lock mechanism to prevent cache stampede
- Detail performance optimization (sendfile, goroutine pool, buffer pool)
- Update dependency graph
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 13:16:22 +08:00
9cae5ad8cf
chore(init): initialize project with nginx documentation
...
- Add Go module initialization (go 1.26)
- Add comprehensive NGINX documentation covering:
- Overview, installation, HTTP core module
- Proxy/load balancing, SSL/TLS, URL rewrite
- Compression/caching, logging/monitoring
- Security, TCP/UDP stream, mail proxy
- Performance tuning, Git commit guide
- Add standard Go .gitignore
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-02 11:45:53 +08:00