写了一个基于新浪SAE的CDN反向代理+软防火墙小程序

2012-05-24

众所周知,新浪SAE(Sina App Engine)的线路情况绝对是国内最厉害的,无论是中国电信、中国联通,还是移动或者教育网,其速度甚至不是国内的一些低级的CDN所能比拟的;即使是新浪SAE自己的CDN系统(通过lib.sinaapp.com可以发现),线路也不及SAE。

新浪SAE的硬伤就是PHP程序需要进行移植才能使用,所以一定程度上也限制了其的发展。虽然随着新浪SAE的不断发展这种状况有所缓解,但是还是不能从根本上有所改变。

看到新浪SAE如此优越的线路,我昨天心血来潮,写了一个基于新浪SAE的CDN反向代理程序。程序的原理很简单,当客户访问SAE资源的时候,根据客户请求资源的URL和相应的缓存规则进行匹配;然后根据匹配的规则,如果SAE上有缓存并且尚未过期,则直接发出缓存内容进行相应;否则SAE从源服务器抓取数据并缓存。

我的缓存是用MC来完成的。按理来说,KVDB作为持久化存储,而且存储容量较MC大很多,选择它是自然而然的事情了。但是因为我的WWW站点存储的是一些HTML文件,占不了多大的空间,所以用内存级的MC问题也不大。再说了,从速度来说,MC较KVDB要快。

如果你对我的这个小程序有兴趣的话,你可以修改本地的HOSTS文件,将mawenjian.net的IP地址指向SAE的任意一个IP地址,比如115.182.15.250,你是不是发现速度有所提升了呢?

内存级的缓存,再加上国内顶尖的线路,绝对是极客杀人放火、居家旅行的必备杀器!嘎嘎!

今天一觉醒来,我突然觉得仅仅CDN加速还不够,要是能够再加上一个防火墙功能就更好了。于是放狗搜索,结果还真找到了一个开源的PHP软防火墙,叫做“PHP FIREWALL“,至于效果怎们样,我就不知道了。不管三七二十一了,先添上这个功能再说。

做一个简单的测试:输入一个含有SQL注入的URL:

https://mawenjian.net/index.php?';%20DROP%20TABLE%20[table%20name];

回车,结果还真可以拦截,有那么点意思。直接上截图:

我怎么感觉越来越像创新工场的安全宝和360的网站宝啊,哈哈。


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 写了一个基于新浪SAE的CDN反向代理+软防火墙小程序

分类:互联网 | 标签: |

11 条评论

  1. @TXisfine说道:

    过来看看了,挺好的。对了, 衡公备是什么鬼?

  2. 王冠硕说道:

    很赞同你的想法,最近我也在准备做这个东西,你之前做的bae的远程附件赞死了,不知道愿不愿意一起研究下这个东西?我想加你的QQ可是找不到,你要已经做完了大体框架的话,我就可以从你的起点开始继续加别的功能了,哈哈

    • 马文建说道:

      哈哈,多谢夸奖。好啊,非常荣幸,有志同道合的朋友可以一起来搞这个东西!
      我的QQ是3824781,不过最近事情较多,在线的时间可能不会太多。
      这个东西非常简单,没有什么框架不框架的。
      其实原先我也打算继续完善一下的,但是无论SAE还是BAE,动态生成的图像也好,网页也好,都会自动加上一个set-cookie的文件头,但是这很不利于浏览器端的缓存。这是我没有继续完善下去的原因。

  3. Dprince说道:

    那好吧,不过七牛能免费多久啊。

  4. Dprince说道:

    亲,能搬个忙吗,能不能把这个小程序http://www.longsays.com/20121013/saelayercdn-sae-homemade-domestic-cdn-to-accelerate-page-loading-speed.html移植到bae呢,这样的话就能实现把七牛的镜像回源功能搬到bae上了,这个程序比较简单,应该可以搬上去吧,我bae上还有1000优惠卷和100G容量没用呢!!!求帮忙!!看我的 光波!!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注