做不像样不敢拿出来的,
之前看到 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 请求详情,后面走了点弯路之后成功实现功能。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.