做不像样不敢拿出来的,
之前看到 v 友分享的 Haipproxy 做的很不错,就是部署起来感觉挺复杂的,依赖各种服务。
所以用 Go 做了一个代理池+二级代理。只依赖 MySQL,一键部署。
Proxy-in-a-Box https://github.com/naiba/proxyinabox
(开启了 debug 模式的话还能体验 https MITM 打印 request 和 response.)
按照 readme 启动之后,在你的代码中设置 proxy,然后就可以跑了。
TL;DR
代理的调度:开始的时候是在数据库中调度,频繁的读写及自增……后面放到了 sync.Map ,感觉可控性不强,后面又转到了 redis,结果 go-redis 用的不好,高并发下还是会出现一个代理一秒钟调度到一个主机十几次。 后面整个用锁自定义 map 来控制多线程读写。现在感觉很棒棒了。 开始没有做 MITM 打印 https 请求详情,后面走了点弯路之后成功实现功能。
2
lookas2001 2018-07-27 10:05:26 +08:00 via Android 1
看到了,支持一下
|
3
zkwap 2019-12-04 14:03:46 +08:00
这么给力,怎么没人评论
|