# xk-hy-forward-go 基类架构 ## 代码结构 ``` xk-hy-forward-go/ ├── main.go # 入口,调用 forward.Run() ├── go.mod # Go 模块定义 ├── go.sum # 依赖校验 ├── run.bat # Windows 启动脚本 ├── .env.example # 环境变量模板 └── internal/ └── forward/ ├── run.go # HTTP 服务器启动 ├── proxy.go # 反向代理逻辑 ├── config.go # 配置加载 ├── env.go # 环境变量解析 ├── headers.go # 请求头白名单过滤 ├── apilog.go # API 请求日志 ├── applog.go # 应用日志 ├── *_test.go # 测试 └── testweb/ # 测试 Web 资源 ``` ## 核心模块 | 文件 | 职责 | |------|------| | `run.go` | HTTP 服务器启动,路由注册 | | `proxy.go` | 反向代理核心逻辑,请求转发和响应处理 | | `config.go` | 配置加载和验证 | | `headers.go` | 请求头白名单,只转发允许的头 | | `apilog.go` | API 请求日志记录 | | `applog.go` | 应用级日志 | ## 反向代理流程 ```mermaid graph LR REQ[收到请求] --> CHECK{IP 白名单} CHECK -->|通过| LOG[记录日志] CHECK -->|拒绝| REJECT[返回 403] LOG --> FILTER[过滤请求头] FILTER --> FORWARD[转发至目标] FORWARD --> RESP[接收响应] RESP --> RET[返回给调用方] ```