准备依赖环境
- 运行部署snova需要JRE/JDK 1.6+
- 运行部署gsnova无需任何依赖
- 下载解压Google App Engine
SDK(Java/Go) (最新版本), snova-gae支持Java/Go两种语言的server端实现,任选一个即可
Step
4: 部署Server到Appengine服务器
Appid如果上传不了请开VPN再试试!
- (Go版本和Java版本任选其一)
- Go版本
两种方式
- 用自带的Deployer部署(如果用这种方式不行,可用下面的用Appengine Go SDK部署方式)
- 下载并解压snova-gae-gserver-[version].zip
- windows用户执行deployer.exe;Mac/Linux用户执行python
deployer.py
- 按照deployer的指示输入,执行部署
- 用Appengine Go SDK部署
- 下载并解压snova-gae-gserver-[version].zip
- 进入解压的目录, 修改app.yaml, 将application: snova-master中snova-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\src(src的路径)(我的是在G:\snova-gae-gserver-0.18.4,你应该输入你自己的snova-gae-gserver-0.18.4所在的路径,),如图:
- 然后输入gmail账户和密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)
- 然后输入你的邮箱和app应用的专用密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)
- 完成。
- Java版本
两种方式
- GUI方式 (如果用这种方式不行,可用下面命令行方式)
- appcfgwrapper安装程序已经集成到snova-gae-jserver-[version].zip中,执行install.bat/install.sh即可,具体请参考此项目说明http://code.google.com/p/appcfgwrapper/
- 命令行方式
- 下载并解压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部署的步骤差不多,如下:
- 运行cmd命令,转到appcfg.cmd(windows用appcfg.cmd,其他的用appcfg.sh)(appcfg在'<Google App Engine
Java SDK>/bin'下 )所在的appengine-java-sdk-1.7.3\bin文件夹,例如我的appengine-java-sdk-1.7.3在G:\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\war(war的路径)(你应该输入你的snova-gae-jserver-0.14.0的路径),如图
- 接着你要输入email和你的app应用的专用密码(输入的密码不可见,你输入或者复制密码然后黏贴就可以了)。
- 完成,如图:
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对话框中配置),简要说明如下:
- 如下的配置为默认的proxy地址,相应的浏览器的proxy地址应该填"127.0.0.1:48100"
[Framework] #本地ProxyServer监听地址 LocalHost=localhost LocalPort=48100
- 如下为默认选择的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)
- 以下是额外的设置,仅供参考,默认不用修改
- XMPP下Account为XMPP账户,是可选配置,在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模式为XMPP(ConnectionMode=XMPP)情况下生效
- ConcurrentRangeFetchWorker=3 在下载文件/观看视频时生效,含义为并发的下载线程数,可以任意调整,建议在1~5之间调整
- FetchLimitSize=512000 在下载文件/观看视频时生效,每次事务获取的大文件部分的大小,默认512KB
- 配置多AppID情况下若需要将访问一个站点的请求绑定到指定AppID,则需要配置AppIdBinding
[AppIdBinding] #站点域名可用|,;隔开 appid=twitter.com|youtube.com