hyk-proxy reference
关于hyk-proxy
-
一个Java编写基于RPC机制实现的web proxy,运行于Google AppEngine平台
-
支持HTTP/XMPP为通信协议
- 开源项目,托管于Google Code(http://hyk-proxy.googlecode.com)
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本身的限制,目前理论上只有三种方式可以选择:
- HTTP,local server作为HTTP client访问remote server
- XMPP,local server作为一个XMPP user与remote server进行通信
- EMAIL,local server 与remote server发送/接受email通信(由于EMail限制较大,似不适于用于RPC通信协议)
如何使用
-
检查本地运行环境
- JRE/JDK 1.5+
- Google App Engine SDK(Java) (最好为最新版本,下载地址)
-
创建自己的GAE应用(http://appengine.google.com/)
- 安装Remote Server
- 解压hyk-proxy-server-[version].zip
- 进入解压的目录, 修改war/WEB-INF/appengine-web.xml, 将<application>值改为自己创建的appid
- 执行appcfg.cmd/appcfg.sh update上传, 注意在解压后进入的目录执行(appcfg在'<Google App Engine SDK>/bin' )
- 运行Local Server
- 解压hyk-proxy-client-[version].zip
- 进入解压的目录, 修改etc/hyk-proxy-client.properties中“remoteserver.appid.x”
- 执行bin/start.bat(start.sh)启动local server,bin/stop.bat(stop.sh)停止默认绑定的地址为 127.0.0.1:48100
配置说明
- '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模式目前未实现
hyk-proxy是一款基于Java和RPC机制的web代理工具,可在Google App Engine平台上运行,并支持HTTP/XMPP通信协议。该开源项目由两个部分组成:运行在GAE上的远程服务器和本地的简单HTTP/HTTPS服务器。本地服务器接收HTTP请求并通过RPC框架将其转发到远程服务器,随后将响应返回给客户端。
361

被折叠的 条评论
为什么被折叠?



