关于

snova是一个插件化的web proxy框架,目前自动集成一个基于Google AppEngine平台的一个GAE插件

安装配置

  • 安装运行依赖
    1. JRE/JDK 1.6+
    2. Google App Engine SDK(Java/Go) (最新版本)
  • 创建自己的GAE应用 http://appengine.google.com/ (必须)
  • 部署Remote Server(Java版本和Go版本任选其一)
    1. 部署Java版本应用到Appengine服务器
      • GUI方式
      • 命令行方式
        • 下载并解压snova-gae-jserver-[version].zip
        • 进入解压的目录, 修改war/WEB-INF/appengine-web.xml, 将<application>值改为自己创建的appid
        • 执行appcfg.cmd/appcfg.sh update war上传, 注意在解压后进入的目录执行(appcfg在'<Google App Engine SDK>/bin’下 )
    2. 部署Go版本应用到Appengine服务器(windows下也可执行)
      • 下载并解压snova-gae-gserver-[version].zip
      • 进入解压的目录, 修改app.yaml, 将application: snova-master中snova-master值改为自己创建的appid
      • 执行appcfg.py update snova-gae-gserver-<version>上传(appcfg.py在'<Google App Engine Go SDK>/’下

 

  • 运行Local Server
    1. 解压snova-[version].zip
    2. GUI方式
      • 执行bin/startgui.bat(windows)或者startgui.sh(linux/unix/mac)启动
    3. 命令行方式
      • 执行bin/start.bat(windows)或者start.sh(linux/unix/mac)启动local server
    4. 浏览器设置代理地址默认为 127.0.0.1:48100,可以修改
  • 配置
    • Framework

      Framework的配置仅有两三项,具体涉及proxy的配置均在相应plugin的配置中;目前均在conf/snova.xml中(GUI启动则在Config对话框中配置),简要说明如下:

      1. <localserver host="localhost" port="48100" />, 默认的proxy地址,相应的浏览器的proxy地址应该填”127.0.0.1:48100″
      2. <ProxyEventHandler>GAE</ProxyEventHandler>, 默认选择的proxy实现,若安装了其他的plugin,则可以在此修改为其它的proxy实现

    • GAE Plugin

      基于GAE实现大部分配置均在gae-client.xml中(GUI启动则在GAE plugin的相应Config对话框中配置),简要说明如下:

      • <WorkerNode appid="" /> 为已部署的ApplicationID, 即<appid>.appspot.com<appid>, eg: 
                  <WorkerNode appid="gosnova" /> 

        GUI方式下参考下面方式

      • <WorkerNode appid="" />可配置多个,此情况下, 代理过程中采用轮询策略选择, eg:
                   <WorkerNode appid="gosnova1" />              <WorkerNode appid="gosnova2" /> 
      • <WorkerNode appid="" /> 中可以配置用户名/密码,具体用户名/密码概念请参考Authorization, eg:
                  <WorkerNode  appid="hyk-proxy-demo" user="root" passwd="12345"/> 
      • 如果不配置appid的话,client会到master node上获取数个共享的appid用于自身启动,注意:
        • 共享的appid只能用于匿名用户使用(匿名用户的概念看这里Authorization
      • XMPP下 <Account user="" passwd="" />为XMPP账户,是可选配置,在HTTP无法直连情况下可启用,目前可配置GTALK/jabber.org/OVI等几乎所有XMPP帐号(若有不支持的XMPP account,请提交ISSUE), eg:
                 <XMPP>              <Account user="[email protected]" passwd="123456" />           </XMPP>

      GUI方式则需要在Connection Tab下配置

      • XMPP账户可配置多个,此情况下代理过程中采用轮询策略选择,eg:
                  <XMPP>               <Account user="[email protected]" passwd="123456" />               <Account user="[email protected]" passwd="123456" />            </XMPP>
      • XMPP模式仅在ConnectionMode模式为XMPP(<ConnectionMode>XMPP</ConnectionMode>)情况下生效
      • <ConcurrentRangeFetchWorker>3</ConcurrentRangeFetchWorker> 在下载文件/观看视频时生效,含义为并发的下载线程数,可以任意调整,建议在1~5之间调整

AppId共享计划

  • 在snova的GAE Plugin的GUI中提供有一个共享appid的功能,任何人可以据此共享自己的appid, 如下图:

  

  • 在snova的命令行工具admin.sh/admin.bat中也内置share/unshare命令
  • 当snova的用户由于某些原因(如不知道怎么安装server侧)没有配置自己的appid时,默认情况下,snova-gae会从服务器上随机获取几个共享appid,然后用匿名用户方式连接<shareappid>.appspot.com

 

注意

  • Go版本GAE服务端与Java版本GAE服务端功能完全一致,区别在于Go版本的性能较Java版本为好,粗略观察差距大约在30%以上,另外Go实例启动时间很短(<500ms),而Java实例的启动时间较长(>4s)
  • GUI以及CLI工具中均有share/unshare appid功能, 你可以分享自己的appid到中心服务器,也可以取消分享;中心服务器则随机分派appid给没有安装自己的snova-gae-server的用户

项目地址:  http://code.google.com/p/snova/

发表评论

您的电子邮箱地址不会被公开。