反向代理到整个WWW

我试图创build一个反向代理工作像http://www.meowbify.com/ ,这是一个很酷的平台,用猫animationreplace图像。 我尝试了Apache和nginx的“反向代理”,只是为了反向代理一个现有的网站,它可以与www.bcc.co.uk这样的网站一起工作,但是没有与网站.com.cn一起工作。 (我在nginx中使用apache和proxy_pass中的常规ReverseProxyPass)。 在Apache中,我也使用了proxy_html_module,以重写链接。

那么http://www.meowbify.com/是如何工作的呢? 我已经搜查了mobifiy网站,其中指出:

它是如何工作的:Mobify.js使用一种称为客户端适配的技术来在浏览器中重新混合HTML。 浏览器会将重新混合的内容解释为服务器首先发送它!

Mobify.js标签引导适配并加载执行它的Mobify.js文件。 该标签在iOS,Android和黑莓浏览器中激活。 默认情况下,Mobify.js文件是从开发服务器加载的。

开发服务器是Mobify Client的一部分,Mobify Client是一个用于构buildMobify.js项目的命令行工具。 它根据请求dynamic地编译Mobify.js文件。 该文件包含两个部分,Mobify.js API和网站特定的修改。

适应性被expression为对源DOM的一系列操作,即从页面的原始HTML构build的DOM。 可以selectHTML元素,然后使用模板进行渲染。 最后,呈现的模板被写入浏览器。

长话短说,它使用一些CSS魔术,以显示适合每个浏览器的网站。

我想,mewbifity的伎俩是操纵网站目录(即cat.'site'.meowbify.com /)。

那么我怎么能做类似的事呢?

在此先感谢,Guyl

  1. 使用处理程序设置网站,该处理程序接受URL作为查询string的一部分
  2. 在对该网站的每个请求中,build立自己的networking连接到传递的URL
  3. 刮取所产生的<img>标签的HTML
  4. 将每个<img>标记中的src属性的值replace为您自己的图像的URL
  5. 根据原始请求服务replace的HTML
  6. ????
  7. 利润。

至于如何做到以上所有,那些将是支持您的首选语言的社区编程问题。

请记住,这不会为您的预期客户(受害者)更改整个networking,只会指定他们想要代理的URL。

Meowbify实际上是开源的,所以你可以看看github上的代码,并根据需要启发自己: https : //github.com/mobify/meowbify

它使用一个非常简单的方法来编码所需的URL:cat / cats来指定http或https协议,然后是原始主机名,然后是.meowbify.com,然后是原始URL中的path和查询string。

在请求所需的文档之后,它使用SAX风格的streamXMLparsing器来查找和重写感兴趣的标签(在这种情况下,主要是<img>元素的src属性),然后提供生成的HTML。