2013年1月10日星期四

把Snova&Gsnova部署到GAE最新图文教程


准备依赖环境
  • 运行部署snova需要JRE/JDK 1.6+
  • 运行部署gsnova无需任何依赖
Step 2: 创建GoogleAppEngine帐号/应用
在官方站点创建自己的GAE帐号以及appid http://appengine.google.com/
Step 3: 准备GAE SDK环境用于部署上传(可选,Go版本自带一个部署工具)
  • 下载解压Google App Engine SDK(Java/Go) (最新版本) snova-gae支持Java/Go两种语言的server端实现,任选一个即可
Step 4: 部署ServerAppengine服务器
Appid如果上传不了请开VPN再试试!
  • Go版本和Java版本任选其一)
  •  
  • Go版本
两种方式
    • 用自带的Deployer部署(如果用这种方式不行,可用下面的用Appengine Go SDK部署方式)
      • 下载并解压snova-gae-gserver-[version].zip
      • windows用户执行deployer.exeMac/Linux用户执行python deployer.py
      • 按照deployer的指示输入,执行部署
    • Appengine Go SDK部署




      • 下载并解压snova-gae-gserver-[version].zip
      • 进入解压的目录, 修改app.yaml application: snova-mastersnova-master值改为自己创建需要上传的appid,每次上传新appid都要修改成要上传的appid
      • 执行appcfg.py update snova-gae-gserver-<version>上传(appcfg.py'<Google App Engine Go SDK>/'
      • Appengine Go SDK部署方法如下:
      • 1.运行cmd命令,然后转到appcfg.py (appcfg.py'<Google App Engine Go SDK>/') 所在的Google App Engine Go SDK文件夹,例如我的Google App Engine Go SDK文件夹在C:\Program Files\Google App Engine Go SDK。如图:
      •        
      • 2.然后执行appcfg.py update snova-gae-gserver-0.18.4 (我的是0.18.4版本,应该执行你下载的版本)的src文件夹(因为app.yaml文件在src文件夹里)上传,正确的应该是这样输入appcfg.py update G:\snova-gae-gserver-0.18.4\srcsrc的路径)(我的是在G:\snova-gae-gserver-0.18.4,你应该输入你自己的snova-gae-gserver-0.18.4所在的路径,),如图:
      • 然后输入gmail账户和密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)
      • 然后输入你的邮箱和app应用的专用密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)
      • 完成。


      • Java版本
两种方式
    • GUI方式 (如果用这种方式不行,可用下面命令行方式)
    • 命令行方式

      • 下载并解压snova-gae-jserver-[version].zip
      • 进入解压的目录, 修改war/WEB-INF/appengine-web.xml <application>值改为自己创建需要上传的appid,每次上传新appid都要修改成要上传的appid。如下图
      • 执行appcfg.cmd/appcfg.sh update war (因为appengine-web.xml文件在war文件夹里)上传, 注意在解压后进入的目录执行(appcfg'<Google App Engine Java SDK>/bin' )
    • 命令行方式操作和上面GO版本用Appengine Go SDK部署的步骤差不多,如下:
        1. 运行cmd命令,转到appcfg.cmdwindowsappcfg.cmd,其他的用appcfg.sh(appcfg'<Google App Engine Java SDK>/bin' )所在的appengine-java-sdk-1.7.3\bin文件夹,例如我的appengine-java-sdk-1.7.3G:\appengine-java-sdk-1.7.3,如图
2.. 接着执行appcfg.cmd/appcfg.sh update snova-gae-jserver-0.14.0\war上传,正确的应该是这样输入appcfg.cmd update G:\snova-gae-jserver-0.14.0\warwar的路径)(你应该输入你的snova-gae-jserver-0.14.0的路径),如图


        1. 接着你要输入email和你的app应用的专用密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)。
        2. 完成,如图:

Step 5: 配置客户端

Client可选gsnova(Go)或者snova(Java).

gsnova(Go)

  • 修改gsnova.conf
将申请的appid填入WorkerNode[0]=后,注意appid为不含.appspot.com的前缀部分(即是直接输app名字就可以了),若有多个appid,可以如下配置多个:
[GAE]   
Enable=1   
WorkerNode[0]=myappid1 
WorkerNode[1]=myappid2
WorkerNode[2]=myappid3


  • 或者修改[SPAC]Enable设置为0
  • HTTPS站点代理需要导入伪造的证书。伪造证书为cert/Fake-ACRoot-Certificate.cer
  • 如果不配置appid的话,client会到master node上获取数个共享的appid用于自身启动,注意—— 共享的appid只能用于匿名用户使用(匿名用户的概念看这里Authorization
  • 不支持XMPP

snova(Java)

  • Framework
Framework的配置仅有两三项,具体涉及proxy的配置均在相应plugin的配置中;目前均在conf/snova.conf中(GUI启动则在Config对话框中配置),简要说明如下:
    1. 如下的配置为默认的proxy地址,相应的浏览器的proxy地址应该填"127.0.0.1:48100"
            [Framework]

             #本地ProxyServer监听地址

             LocalHost=localhost

             LocalPort=48100
    1. 如下为默认选择的proxy实现,若安装了其他的plugin,则可以在此修改为其它的proxy实现
            [Framework]

            ......

            ##Can choose in plugins GAE/SPAC/C4, default is GAE

            ProxyService=GAE

    • GAE Plugin
基于GAE实现大部分配置均在gae-client.conf中(GUI启动则在GAE plugin的相应Config对话框中配置),简要说明如下:
      • WorkerNode 为已部署的ApplicationID <appid>.appspot.com<appid>, eg:
             [GAE]

             WorkerNode[0]=root:passwd@appid1
GUI方式下参考下面方式
Windows 上,你可以双击 “bin” 文件夹里面的 “startgui.bat” 文件;然后,你就可以打开 Snova 客户端,点击 “Plugins” 标签 “GAE xxx” 插件下面的 “Config” 按钮,再点击新窗口里面的 “New” 按钮,然后输入你的 GAE 应用程序名称,完了之后,点击 “Apply” 按钮就可以了。你可以部署多个 GAE 应用程序名称。 千万记住点击“new 每输入一个appid都要点击一次“apply”(部署)。
如下图所示:
        
      • <WorkerNode appid="" />可配置多个,此情况下, 代理过程中采用轮询策略选择, eg:
            [GAE]

            WorkerNode[0]=appid1

            WorkerNode[1]=appid2
             WorkerNode[2]=appid3
             WorkerNode[3]=appid4
      • WorkerNode 中可以配置用户名/密码,具体用户名/密码概念请参考Authorization, eg:
          WorkerNode[0]=root:passwd@appid1

最后修改plugins\gae\conf\gae-client.conf

      • HTTPS站点代理需要导入伪造的证书。伪造证书为conf/Fake-ACRoot-Certificate.cer
应用程序添加成功之后,点击 “Start” 按钮就可以运行 Snova 服务了。

      • 如果不配置appid的话,client会到master node上获取数个共享的appid用于自身启动,注意—— 共享的appid只能用于匿名用户使用(匿名用户的概念看这里Authorization
      • 以下是额外的设置,仅供参考,默认不用修改
        • XMPPAccountXMPP账户,是可选配置,在HTTP无法直连情况下可启用,目前可配置GTALK/jabber.org/OVI等几乎所有XMPP帐号(若有不支持的XMPP account,请提交ISSUE, eg:
                 [XMPP]

                 Account[0]=user:passwd
GUI方式则需要在Connection Tab下配置 
      • XMPP账户可配置多个,此情况下代理过程中采用轮询策略选择,eg:
                [XMPP]

                Account[0]=user:passwd

               Account[1]=user:passwd[#serverhost:serverport][/oldssl]
      • XMPP模式仅在ConnectionMode模式为XMPPConnectionMode=XMPP)情况下生效
      • ConcurrentRangeFetchWorker=3 在下载文件/观看视频时生效,含义为并发的下载线程数,可以任意调整,建议在15之间调整
      • FetchLimitSize=512000 在下载文件/观看视频时生效,每次事务获取的大文件部分的大小,默认512KB
      • 配置多AppID情况下若需要将访问一个站点的请求绑定到指定AppID,则需要配置AppIdBinding
            [AppIdBinding]

            #站点域名可用|,;隔开

            appid=twitter.com|youtube.com