标题稍微含蓄点,大概的意思是想做一个收费的正向代理。这不是什么新鲜事了,大家可能都有买过ssh服务,或者VPN,免费的也用过GoAgent,不过我想做的不是这种的。
从我最近见识的一个付费服务说起吧,这个服务通过让用户的浏览器加载pac文件,连接到公网IP的代理服务器解决问题,我付费用了两个月,觉得这种方式比较平易近人,这是什么意思呢:

有那么一波用户,现在肯定还不明白所谓的ssh,VPN什么的,然后你让他装个客户端,再用也许听都没听过的现代浏览器下载一个插件,所有东西还要设置一番才能妥妥的上网,这用户肯定打游戏去了。
另外就是价格,能比其他的付费服务便宜很多。

这个付费服务很好,但是有些瑕疵:

  1. 没有编辑用户个人pac的人性化接口,有特殊需求的基本都是靠群里说着加上的。
  2. 基于squid,认证容易过期,可调整不多,据反映性能压力也很大,老板总说要提价。

我的想法就是改进这两点,特别是第二点。方案是通过nodejs做面向用户的正向代理,这样可以在代码里做很多提升用户认证体验的工作,全面的定制性完爆squid,性能还不清楚。然后nodejs把用户请求转发给反向代理Varnish,做一个页面缓存层,最后由反向代理再去访问另一个简单高效的正向代理软件。
这个结构很啰嗦,但是要定制性的话,nodejs的代码越靠前越能准确判断用户,减少用户认证成本。此外如果不用缓存的话,是可以割掉Varnish后面一段的。

最后说下我付费用过的这个服务可能的成绩,群里应该有300个付费用户吧,一人一月10块钱,自己算算。另外这个东西是不可能做大的,贵国的情形你懂,用户越多出问题的时候抱怨越剧烈。所以,招呼个两三百用户,每月挣点零花钱就得了


接下来我准备动手做一个,顺便征几个早期测试用户,免费服务哦,有意的留个记号吧:-D

Written with StackEdit.