1.5 KiB
1.5 KiB
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 |
应用级日志 |
反向代理流程
graph LR
REQ[收到请求] --> CHECK{IP 白名单}
CHECK -->|通过| LOG[记录日志]
CHECK -->|拒绝| REJECT[返回 403]
LOG --> FILTER[过滤请求头]
FILTER --> FORWARD[转发至目标]
FORWARD --> RESP[接收响应]
RESP --> RET[返回给调用方]