Files
proxy/README.md
2025-02-26 13:56:56 +08:00

63 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## todo
监听进程信号,优雅关闭服务
加一个 log 包,实现全局日志格式控制
读取 conn 时加上超时机制
检查 ip 时需要判断同一 ip 的不同写法
客户端断联后,服务端代理端口没有正确关闭
代理节点超时控制
实现一个 socks context 以在子组件中获取 socks 相关信息
fwd 使用自定义 context 实现在一个上下文中控制 cancelerrCh 和其他自定义数据
网关根据代理节点对目标服务连接的反馈,决定向用户返回的 socks 响应
数据通道池化
### 长期
代理端口支持混合端口转发(支持 tcp_mux
数据通道支持 tcp 多路复用(分离逻辑流)
👆 进阶黑魔法 multipath tcp + 多路复用
考虑一下连接安全性
内部接口 rtt 是否还有优化空间当前30-300ms根据内容大小增长
### 代码清理
检查 slog 级别:
ERR: 除非有必要,否则全部 error 都使用 `errors.Wrap()` 包裹(如果下游有返回 err并附带本层业务信息return 到上层统一打印
其他级别日志就地打印Info 只用来跟踪关键流程
## 开发相关
### 环境变量
> 环境变量只记录在程序中用到的变量
>
> **构建期变量**,比如 docker-compose 中的变量,以及其他配套服务的环境变量,直接写死
新增环境变量时,需要确保两个位置正确传递了变量
1. 在对应端的 .env.sample 文件中添加变量
2. 复制到 .env 文件中,并修改变量值
3. 在 docker-compose.yml 和程序中使用变量
### 更新测试环境
1. 构建项目
2. 使用测试配置 `.env.test` 远程启动 docker
## 转发服务