hyk-proxy 构建于GAE之上的高性能web代理


hyk-proxy reference

关于hyk-proxy

  • 一个Java编写基于RPC机制实现的web proxy,运行于Google AppEngine平台

hyk-proxy原理

  • hyk-proxy分为两部分,一部分运行于GAE之上,属于remote server;另一部分运行于本地,属于local server,实质则为一个简单的http/https server。 

  • 当浏览器设置的代理服务器地址为local server地址时,local server将http请求通过一个通用RPC框架远程调用到remote server上,获取远程调用结果。

  • local server在获取调用结果简单处理后,转给浏览器完成一次代理访问。

  • 一次web访问经过此代理的完整过程如下:

            

 

  其中Local Server与Remote Server之间属于RPC通信层部分,不局限于HTTP连接;若Remote Server由于防火墙原因无法直接通过HTTP连接,可采用XMPP模式穿越 

  • 由于该RPC框架通信层部分可以替换,因此local server与remote server之间的通信方式可以视实际情况替换。由于GAE本身的限制,目前理论上只有三种方式可以选择:

    1. HTTP,local server作为HTTP client访问remote server 
    2. XMPP,local server作为一个XMPP user与remote server进行通信
    3. EMAIL,local server 与remote server发送/接受email通信(由于EMail限制较大,似不适于用于RPC通信协议)

如何使用

  • 检查本地运行环境 

    1. JRE/JDK 1.5+
    2. Google App Engine SDK(Java) (最好为最新版本,下载地址
  • 安装Remote Server
    1. 解压hyk-proxy-server-[version].zip 
    2. 进入解压的目录, 修改war/WEB-INF/appengine-web.xml, 将<application>值改为自己创建的appid
    3. 执行appcfg.cmd/appcfg.sh update上传, 注意在解压后进入的目录执行(appcfg在'<Google App Engine SDK>/bin' ) 
  • 运行Local Server 
    1. 解压hyk-proxy-client-[version].zip
    2. 进入解压的目录, 修改etc/hyk-proxy-client.properties中“remoteserver.appid.x”
    3. 执行bin/start.bat(start.sh)启动local server,bin/stop.bat(stop.sh)停止默认绑定的地址为 127.0.0.1:48100

    配置说明

        大部分配置均在hyk-proxy-client.properties中,简要说明如下: 
    • 'remoteserver.appid.x' 为已部署的ApplicationID, 即<appid>.appspot.com中<appid>
    • 'remoteserver.appid.x' 可配置多个,此情况下, 代理过程中采用轮询策略选择
    • 'localserver.xmpp.user.x’, 'localserver.xmpp.passwd.x' 为XMPP账户,目前GTALK/OVI/jabber账户均可使用 
    • XMPP账户可配置多个,此情况下代理过程中采用轮询策略选择
    • XMPP模式仅在HTTP模式为false("localserver.http.enable = false")情况下生效
    • 'localserver.rpc.http.maxfetcher' 在下载文件/观看视频时生效,含义为并发的下载线程数

    注意

    • 启用XMPP模式时, 由于xmpp server限制,太频繁发送消息会被server拒绝,可采用配置多个XMPP账户规避
    • EMail模式目前未实现

     

    你可能感兴趣的:(Web,浏览器,Google,防火墙,GAE)