4 Commits

Author SHA1 Message Date
xfy
42a4c8d311 docs(proxy): 为反向代理模块添加标准化 godoc 注释
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 11:23:03 +08:00
xfy
0c71a80b5a docs(proxy): 为反向代理模块添加标准化 godoc 注释
为 proxy 包所有文件添加完整文档注释:
- proxy: 反向代理核心(负载均衡、缓存、WebSocket、SSL/TLS)
- headers: X-Forwarded 系列请求头设置
- health: 后端健康检查
- proxy_ssl: 上游 SSL/TLS 配置
- redirect_rewrite: 重定向响应改写
- tempfile_cleaner: 临时文件清理

包级注释详细说明支持的负载均衡算法、故障转移机制、
代理缓存策略、重定向改写模式等核心功能。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 10:59:35 +08:00
xfy
470c82d940 style(proxy,server): 代码风格优化
- headers.go: 添加协议常量 protoHTTP/protoHTTPS
- redirect_rewrite.go: 添加模式常量,修正缩进
- proxy_ssl_test.go: 表格测试字段对齐
- server.go: 添加 ServerModeAuto 分支防御性处理

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:54:09 +08:00
xfy
abbc4a50dd feat(proxy): 实现 Location/Refresh 头改写功能
- 新增 RedirectRewriter 改写器,支持三种模式:
  - default: 动态匹配 targetURL 前缀并替换为客户端原始 host
  - off: 禁用改写
  - custom: 使用预编译规则列表匹配替换
- 实现 RewriteResponse 方法改写 Location(3xx 状态码)和 Refresh 头
- 实现 RewriteRefreshOnly 方法用于缓存响应路径(仅 Refresh)
- 支持正则匹配(~ 前缀)和大小写不敏感(~* 前缀)
- 支持变量展开($host, $scheme, $server_port 等)
- 添加 parseRefreshHeader 解析 Refresh 头格式(N; url=URL)
- 在 Proxy.ServeHTTP 中集成改写器调用:
  - 保存 originalClientHost 用于 default 模式
  - 缓存响应路径调用 RewriteRefreshOnly
  - 正常响应路径调用 RewriteResponse
- 添加完整单元测试覆盖各模式和边界情况

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:01:30 +08:00