Files
proxy/README.md

63 lines
1.6 KiB
Markdown
Raw Normal View History

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