0c0cfd0485
docs(specs): add P0 production readiness design specification
2026-06-11 23:29:26 +08:00
fe0dee4da3
fix(compression,ssl,server,lua): resolve data races and concurrency bugs
...
- compression: move sync.Pool.New initialization into constructors to
eliminate lazy-init race in Get()
- ssl/ocsp: copy response fields under RLock before releasing, preventing
race with concurrent writers in refreshAll
- server: change proxiesMu from sync.Mutex to sync.RWMutex; protect
getProxyCacheStats and purge handlers with RLock to prevent races
with proxy registration
- lua/api_timer: fix double-decrement race in Cancel vs executeTimer
by using timer.Stop() result to determine who decrements active
- lua/api_socket_tcp: fix nil pointer race in ConnectAsync by checking
currentOp under lock before Connect returns
2026-06-11 16:30:11 +08:00
b766b98125
docs(plans): add bug fix implementation plan
2026-06-11 15:23:47 +08:00
ebeb258c58
docs(benchmark): add v0.4.0 baseline summary and update gitignore
...
- Collect baseline benchmark summary across all core modules
- Save key results to benchmarks/v0.4.0/summary.txt
- Update .gitignore to track benchmark summaries/reports
- Include performance optimization design docs and plan
2026-06-11 13:43:28 +08:00
2ad056d0ca
fix(config): supplement missing fields and fix comments in -g template
...
Add missing fields to GenerateConfigYAML output:
- proxy.timeout.dial (TCP dial timeout)
- health_check.slow_start and health_check.match (status/body/headers)
- proxy.buffering.buffers (multi-buffer config)
- lua.scripts[].route and route_type (routing mode)
Fix coroutine_stack_size comment to show actual default (64).
2026-06-04 00:04:13 +08:00
6612819f3a
chore: remove stale AGENTS.md files, rewrite root AGENTS.md
2026-06-03 23:47:29 +08:00
d9a7ab9cca
cleanup(config): remove dead ProxyCachePathConfig and CachePath field
...
Disk cache implementation was previously removed but config structs
remained. Remove ProxyCachePathConfig, Config.CachePath field, e2e
WithCachePath helper, and docs reference.
2026-06-03 10:14:07 +08:00
9c091e528b
docs(lua): add route script documentation and examples
...
- Add route script vs middleware script distinction
- Document route_type options (exact, prefix, regex, etc.)
- Add practical examples: status, health, echo, ip, json, redirect
- Document enable_file_watch for hot reload support
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 13:57:33 +08:00
2a532f8c28
docs(lua): update config format to match implementation
...
Replace unsupported shorthand fields (content_by_lua, etc.) with actual
scripts list format and global_settings structure.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 09:49:33 +08:00
4b48fd71e6
docs: add llms.txt for AI agent usage guide
...
Add comprehensive documentation file designed for AI agents to understand
and use Lolly HTTP server. Covers configuration structure, static file
serving, reverse proxy, SSL/TLS, security, Lua scripting, and common
deployment patterns.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 14:54:21 +08:00
7d2c71c921
chore(build): 配置 TMPDIR 避免 tmpfs 空间不足
...
- Makefile 设置 TMPDIR 为项目 tmp 目录
- 更新 docs/prompts.md 基准测试命令示例
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 14:57:12 +08:00
247fa81c00
fix(lua): 修复 Lua 引擎并发安全问题
...
- 缓存 coroutine.yield/status 函数,避免并发读取全局 Lua 状态机
- 添加 ngxRegisterMu 锁保护共享 ngx 表的并发写入
- 各 API 注册函数检查字段是否已存在,避免重复写入
- TCPSocket.currentOp 字段添加锁保护
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 14:19:11 +08:00
11e22c80b8
perf: 零分配优化与 Dial timeout 支持
...
- 添加 b2s/s2b 零分配字节-字符串转换工具函数
- WebSocket 数据转发使用 sync.Pool 复用 32KB buffer
- 条件化 Debug 日志避免非 Debug 级别的字符串分配
- 缓存键哈希计算直接写入 []byte 避免 string 转换
- 使用 bytes.EqualFold 替代 strings.ToLower 进行大小写不敏感比较
- generateETag 使用 strconv.AppendInt 避免 fmt.Sprintf
- 支持 Dial timeout 配置,区分 TCP 连接建立和总连接超时
- MaxConnsPerHost 默认值改为 512(fasthttp 推荐)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-28 20:11:20 +08:00
4562dd5a7d
docs: 添加子目录 AGENTS.md 文档
...
deepinit 生成的子目录级 AGENTS.md 文件,帮助 AI agents 理解各功能模块:
- docs/config/: advanced, basic, caching, load-balancing, lua, rewriting, security, ssl
- docs/lua/: api-gateway, authentication, caching, dynamic-routing, logging-monitoring, middleware, rate-limiting, websocket
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-23 10:35:49 +08:00
ce2d11197a
test(loadbalance,proxy): 添加上游参数和 random 算法测试
...
新增 IsAvailable/RecordFailure/RecordSuccess/filterHealthy 备份优先级、
Random 负载均衡算法测试,适配 createHostClient 签名变更。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 11:28:59 +08:00
6d33b9548f
docs: 添加 nginx core 模块功能分析提示
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 16:04:46 +08:00
cd807e43aa
docs(nginx): 添加 nginx 源码架构分析文档
...
- Upstream 模块源码实现分析(负载均衡算法、故障转移)
- Stream 模块架构分析(TCP/UDP 代理处理流程)
- Mail 模块架构概述(IMAP/POP3/SMTP 协议支持)
- 事件模块源码架构(定时器、epoll、QUIC)
- 变量系统源码实现(索引变量、前缀变量机制)
基于 nginx 1.31.0 源码分析
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 11:09:26 +08:00
89df85a5f4
docs(prompts): 简化任务列表,移除已完成项目
...
移除已完成的文档分析和优化任务,更新路径引用以匹配新的目录结构
(docs/nginx/ 和 lib/fasthttp/)。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 10:48:23 +08:00
972eab4267
refactor(docs): 重构文档目录结构,nginx 文档移至子目录
...
将 docs/ 根目录下的 nginx 相关文档统一移动到 docs/nginx/ 子目录,
提高文档组织性和可维护性。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 10:48:14 +08:00
0a332e8cef
docs(prompts): 添加 fasthttp 源码分析任务
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:54:24 +08:00
fd4e164ae6
refactor(security): 滑动窗口限流器使用分段锁优化并发性能
...
将单一 counters map + 全局 mutex 改为 16 buckets 分段锁结构:
- 新增 limiterBucket 结构体,每个桶独立持有 RW 锁和计数器 map
- 使用 FNV-1a 哈希算法将键均匀分布到 16 个桶中
- 各方法修改为按 bucket 分发操作:
- Allow() / allowApproximate() / allowPrecise()
- Reset() / ResetAll() / Cleanup()
- GetStats() / GetCount()
收益:
- 并发场景下锁竞争降低约 94% (16 个桶并行)
- 基准测试显示并行 Allow 操作约 89ns/op
测试验证:
- go test -race 通过并发安全测试
- 基准测试显示吞吐提升
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 14:26:01 +08:00
d687897090
docs: 更新 README 文档,添加 GeoIP 和 Lua 功能说明
...
- 新增 GeoIP 过滤功能介绍和配置示例
- 新增 Lua 脚本扩展功能介绍和配置示例
- 更新负载均衡算法说明,添加虚拟节点默认值
- 扩展安全功能说明,添加 trusted_proxies、auth_request 等
- 补充性能优化细节(sendfile 阈值、cache_lock)
- 更新 docs/prompts.md 提示词文档
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 16:19:34 +08:00
103e8ff0cf
feat(geoip): 添加基于国家代码的 GeoIP 访问控制功能
...
- 新增 GeoIPConfig 配置结构,支持 MaxMind MMDB 数据库
- 实现 GeoIPLookup 查询器,带 LRU 缓存和 TTL 支持
- AccessControl 集成 GeoIP 检查,按国家代码过滤请求
- 支持私有 IP 特殊处理策略 (allow/deny)
- 添加完整的单元测试和配置验证测试
- 新增 stream-udp.conf 示例配置文档
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 16:14:44 +08:00
4f6a7be44c
docs: 更新 AGENTS.md 项目文档
...
- 更新各目录 AGENTS.md 的子目录信息
- 添加新增目录的 AGENTS.md 文件
- 更新 docs/prompts.md 添加新的提示词
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:15:39 +08:00
c4adcfa76a
docs(lua): 添加定时器回调限制说明文档
...
说明定时器回调无法捕获 upvalue 的原因和替代方案。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 09:24:43 +08:00
6a6cfcd11c
docs(lua): 添加 Lua 配置示例和示例脚本
...
- lua-example.yaml 展示完整 Lua 中间件配置
- examples/lua-scripts/ 包含 auth.lua、content.lua、log.lua 示例
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 14:31:54 +08:00
bfab449241
feat(lua): 实现 Lua 中间件系统
...
添加可配置的 Lua 中间件实现,支持:
- 多执行阶段(rewrite、access、content、header_filter、body_filter、log)
- 脚本路径配置和超时控制
- 中间件启用/禁用开关
- 配置文件热加载
- 完整的单元测试和性能基准测试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 13:34:34 +08:00
6543422281
docs: 添加 Nginx 配置和 Lua 脚本示例文档
...
- config: 反向代理、缓存、负载均衡、安全、SSL 等配置模板
- lua: API 网关、认证、动态路由、限流、WebSocket 等脚本示例
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:59:22 +08:00
941c44b798
docs: 添加 Lua 嵌入分析文档
...
- 新增 lua-embed-analysis.md 技术分析文档
- 新增 lua-nginx-module 文档目录
- 更新 gitignore 允许跟踪 docs/lua-nginx-module/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 11:20:57 +08:00
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
a7dde660c7
docs: 更新提示词文档,完善 generate-config 分析提示
2026-04-09 13:15:14 +08:00
76213de082
docs: 新增提示词文档,使用 ultrawork 替代 /team
2026-04-09 12:19:22 +08:00
ee71270aa5
docs: 移除废弃文档,更新变量配置说明
2026-04-09 12:18:41 +08:00
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
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
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
ae027b6218
docs: 移除过时的文档文件
...
清理 docs 目录下不再需要的文档内容。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 10:07:34 +08:00
db73a362af
docs(update-prompts): 更新提示词文档,移除过时的 plan.md 引用
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-08 09:58:11 +08:00
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
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
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
d8ac807cb7
docs(nginx): 更新代理与 stream 文档,新增 njs/可观测性/ACME 指南
...
- 04: 新增 random 负载均衡、upstream 响应时间变量详解
- 10: 新增访问控制、连接限制、地理/真实IP模块、高级日志配置
- 24: 新增 worker_aio_requests、EPOLLEXCLUSIVE 详解
- 30: njs JavaScript 模块完整指南
- 31: OpenTelemetry 可观测性集成指南
- 32: ACME 自动证书管理指南
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-07 17:06:38 +08:00
3cc2dc7625
style(netutil,server,test): 修复代码格式问题,更新文档
...
- 修复 server.go 缩进问题
- 添加文件末尾换行符
- 格式化测试文件表格对齐
- 更新 update-prompts.md 添加新任务
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 11:38:54 +08:00
a1d84c1144
docs: 更新开发提示文档,添加代码质量检查任务
...
- 更新已有提示使用"深度分析"措辞
- 添加重复代码检测任务
- 添加 lint 检查任务
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-03 17:37:13 +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
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
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
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
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