From 2ef5fc3b7f147c3cab873d68123f0cffbe3a1c07 Mon Sep 17 00:00:00 2001 From: xfy Date: Fri, 17 Apr 2026 16:29:12 +0800 Subject: [PATCH] docs: update CHANGELOG and README for v0.2.1 release Co-Authored-By: Claude Opus 4.7 --- CHANGELOG.md | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 18 ++++++---- 2 files changed, 111 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c0fd08..97f249f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,106 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). +## [0.2.1] - 2026-04-17 + +### Added + +#### 核心功能 + +- 多服务器模式支持,可在单个配置中定义多个独立 server +- Location 匹配引擎,支持 nginx 风格的精确/前缀/正则匹配 +- server_name 通配符和正则匹配支持 +- Unix socket 监听支持 +- 配置引入 (include) 支持,可拆分配置到多个文件 +- 缓存清理 API 端点 +- 状态端点 HTML/Text 输出格式,支持 localhost IP 访问 +- 上游 SSL 配置,支持代理连接使用自定义证书 +- 高并发优化配置项 +- 缓存 TTL 新鲜度验证优化 +- Location/Refresh 头改写功能 +- DNS 缓存 LRU 淘汰机制 + +#### Lua 中间件系统 + +- 完整 ngx API 实现:ngx.var/ngx.ctx/ngx.req/ngx.resp/ngx.log +- 共享字典 API (ngx.shared.DICT) +- 定时器 API (ngx.timer),含线程隔离和回调限制 +- 子请求 API (ngx.location.capture) +- Cosocket API 和响应拦截器 +- balancer_by_lua 动态负载均衡 +- Lua 脚本嵌入支持,含沙箱安全检查 + +#### 安全与访问控制 + +- GeoIP 国家代码访问控制 +- 符号链接安全检查 +- 静态文件处理符号链接安全检查 + +#### 平台支持 + +- Docker 容器化部署支持 +- Windows 平台构建和运行兼容性 + +#### 可观测性 + +- Prometheus 状态输出端点缓存清理 API + +### Changed + +- 移除旧版单 server 配置,统一使用 servers 数组格式 +- 结构体内存布局优化减少 padding +- 提取公共模块:mimeutil、sslutil、netutil、testutil +- 使用标准库 slices/maps 替代自定义函数 +- gofumpt 替代 goimports 格式化代码 +- 禁用 govet fieldalignment 检查 + +### Performance + +- 零拷贝字节路径减少内存分配 +- EphemeralGet/PersistentGet 零拷贝变量访问 API +- LuaContext/协程池对象池化 +- 缓存键哈希计算零分配优化 +- 全局变量惰性加载降低每请求开销 +- 滑动窗口限流器分段锁优化并发性能 +- FileCache.Get() 锁粒度优化 +- HTTP/3 移除冗余 ctxPool 提升性能 + +### Fixed + +- ClientMaxBodySize 默认值设置 +- sendfile 高并发下连接断开处理 +- WebSocket 升级失败时的资源泄漏 +- 代理请求 URI 和 Host 设置 +- BodyStream nil 检查防止空指针 +- 负载均衡器 hostnameOnce 并发安全 +- SSL 证书验证禁用的安全警告 +- 大量 golangci-lint 错误修复 + +### Documentation + +- nginx 源码架构分析文档 +- fasthttp 源码分析任务规划 +- 重构文档目录结构,nginx 文档移至子目录 +- Lua 配置示例和示例脚本 +- 更新 README 添加 GeoIP 和 Lua 功能说明 + +### Tests + +- 端到端集成性能基准测试 +- HTTP/2/HTTP/3/WebSocket 性能基准测试 +- Lua 协程和字节编译性能基准测试 +- DNS 解析、状态端点、负载均衡器完整测试 +- 静态文件发送处理测试 +- 基准测试迁移到 Go 1.24 b.Loop() API + +### Build + +- Docker 构建支持 +- Windows 平台构建兼容性 +- golangci-lint 配置重构,重新启用多项检查 + +--- + ## [0.2.0] - 2026-04-10 ### Added diff --git a/README.md b/README.md index 136e80b..29a3981 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,17 @@ ### 核心功能 -- **静态文件服务** - 零拷贝传输(sendfile)、文件缓存、预压缩支持、try_files 配置 -- **反向代理** - 完整的代理功能,支持请求头/响应头修改、超时控制、故障转移(next_upstream) +- **静态文件服务** - 零拷贝传输(sendfile)、文件缓存、预压缩支持、try_files 配置、符号链接安全检查 +- **反向代理** - 完整的代理功能,支持请求头/响应头修改、超时控制、故障转移(next_upstream)、Location/Refresh 头改写 - **HTTP/3 (QUIC)** - 基于 quic-go,支持 0-RTT 连接 - **WebSocket** - 完整的 WebSocket 代理支持 -- **虚拟主机** - 单进程支持多域名独立配置 +- **虚拟主机** - 单进程支持多域名独立配置,server_name 支持通配符和正则匹配 +- **多服务器模式** - 单配置文件支持多个独立 server 实例 +- **Location 匹配** - nginx 风格的精确/前缀/正则匹配引擎 +- **Unix Socket** - 支持 Unix socket 监听 +- **配置引入** - include 指令支持配置拆分 - **TCP/UDP Stream** - 四层代理,支持 MySQL、Redis 等服务 -- **Lua 脚本** - 基于 gopher-lua 的可编程扩展,支持 nginx-lua 兼容 API +- **Lua 脚本** - 基于 gopher-lua 的可编程扩展,支持 nginx-lua 兼容 API(ngx.var/ngx.ctx/ngx.req/ngx.resp/ngx.timer/ngx.location.capture/ngx.shared.DICT) - **GeoIP 过滤** - 基于 MaxMind GeoIP2 的国家/地区访问控制 - **自定义错误页面** - 支持为特定状态码配置自定义错误页面 @@ -964,9 +968,9 @@ make lint ### 项目统计 -- Go 文件:181 -- 测试文件:85(覆盖率约 47%) -- 核心模块均有完整测试 +- Go 文件:110 +- 测试文件:113 +- 核心模块均有完整测试和性能基准测试 - 中文代码注释 ## 依赖