MacOS上安装配置goagent

本文将简单简述安装配置的流程(这些东西网上到处都是,直接google, baidu就可以了),重点将放在本人在安装过程中遇到的问题和解决方法。
 

安装goagent

 
  • 下载地址如下
               http://git.io/goa
  •  解压缩该版本(当前为3.2.0)的程序,放入你指定的目录,本人使用 /Applications/goagent
  • 申请 Google App Engine 并创建 appid      
技术分享
图1
 
技术分享
图2
 
技术分享
图3
 
 
技术分享
图4
 
技术分享
图5
 
技术分享
图6
 
技术分享
 
 
图7
 
配置goagent
 
  • 修改本地配置
           编辑 local\proxy.ini,把其中 appid = goagent 中的 goagent 改成你之前申请的应用的 appid
  • 运行Goagent
          在MacOS上,使用如下命令:
               bogon:local kuoxin$ python proxy.py
          MacOS默认使用的时python2.7,由于缺少相应地模块会产生大量错误。如果想通过使用pip来安装这些模块的话,相当费力的,推荐使用conda.
          conda下载路径如下:
          
         主要需要 openssl, libffi 和 cryptography 等模块命令如下:
           bogon:local kuoxin$ conda install cryptography
         
          正常运行显示如下内容:
          bogon:local kuoxin$ python proxy.py
          ------------------------------------------------------
          GoAgent Version    : 3.2.0 (python/2.7.8 gevent/1.0 pyopenssl/0.14)
          Listen Address     : 127.0.0.1:8087
          GAE Mode           : https
          GAE APPID          : kuoxinapp
          Pac Server         : http://192.168.202.211:8086/proxy.pac
          Pac File           : file:///Applications/goagent/local/proxy.pac
          ------------------------------------------------------
 
  •      上传操作
               在server目录下执行:
              bogon:server kuoxin$ python uploader.py 
               
               APPID:xxxxxxxx
               Application: xxxxxxx
               Host: appengine.google.com
               Rolling back the update.
               Application: xxxxxx; version: 1
               Host: appengine.google.com
 
               Starting update of app: xxxxxx, version: 1
               Scanning files on local disk.
               Cloning 3 application files.
               Uploading 1 files and blobs.
               Uploaded 1 files and blobs
               Compilation starting.
               Compilation completed.
               Starting deployment.
               Checking if deployment succeeded.
               2014-10-14 16:51:56,339 ERROR appcfg.py:2128 An unexpected error occurred. Aborting.
               Traceback (most recent call last):
                 File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 2114, in DoUpload
              app_summary = self.Commit()
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1909, in Commit
              lambda: (self.IsReady(), None), PrintRetryMessage, 1, 2, 60, 20)
            File  "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 384, in RetryWithBackoff
              done, opaque_value = callable_func()
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1909, in <lambda>
              lambda: (self.IsReady(), None), PrintRetryMessage, 1, 2, 60, 20)
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1977, in IsReady
              result = self.Send(‘/api/appversion/isready‘)
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1698, in Send
              return self.rpcserver.Send(url, payload=payload, **self.params)
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appengine_rpc.py", line 365, in Send
              f = self.opener.open(req)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 404, in open
              response = self._open(req, data)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 422, in _open
              ‘_open‘, req)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 382, in _call_chain
              result = func(*args)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 1222, in https_open
              return self.do_open(httplib.HTTPSConnection, req)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 1187, in do_open
              r = h.getresponse(buffering=True)
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 1067, in getresponse
              response.begin()
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 409, in begin
              version, status, reason = self._read_status()
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 373, in _read_status
              raise BadStatusLine(line)
          BadStatusLine: ‘‘
          Rolling back the update.
          Traceback (most recent call last):
          File "uploader.py", line 104, in <module>
              main()
            File "uploader.py", line 91, in main
              upload(‘gae‘, appid)
            File "uploader.py", line 68, in upload
              appcfg.main([‘appcfg‘, ‘update‘, dirname])
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 3873, in main
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 2443, in Run
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 3638, in __call__
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 2865, in Update
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 2854, in UpdateVersion
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 2114, in DoUpload
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1909, in Commit
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 384, in RetryWithBackoff
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1909, in <lambda>
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1977, in IsReady
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py", line 1698, in Send
            File "/Applications/goagent/server/google_appengine.zip/google/appengine/tools/appengine_rpc.py", line 365, in Send
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 404, in open
              response = self._open(req, data)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 422, in _open
                   ‘_open‘, req)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 382, in _call_chain
              result = func(*args)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 1222, in https_open
              return self.do_open(httplib.HTTPSConnection, req)
            File "/Users/kuoxin/anaconda/lib/python2.7/urllib2.py", line 1187, in do_open
              r = h.getresponse(buffering=True)
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 1067, in getresponse
              response.begin()
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 409, in begin
              version, status, reason = self._read_status()
            File "/Users/kuoxin/anaconda/lib/python2.7/httplib.py", line 373, in _read_status
              raise BadStatusLine(line)
          httplib.BadStatusLine: ‘‘
 
问题和解决方案:
     当前的上传地址已经被封,需要同时使用另外一个可以使用的VPN链接,才能上传成功
 
  • 导入证书
          双击 local 文件夹中的 CA.crt 安装证书
          技术分享
图8 选择【总是信任】
 
               如果证书不选择【总是信任】,否则将在浏览器中出现【Your connection is not private】
技术分享
图9
 
  • 配置浏览器
          当前使用Chrome,可以安装 SwitchySharp扩展使用goagent。在Chrome地址栏输入 Chrome://extensions/ 后按回车,打开扩展管理页,将 local 文件夹中的 SwitchySharp.crx 拖拽到该页面之后点击确定即可安装,扩展也可以从
图10安装扩展
  • 导入设置
技术分享
图11 浏览到 SwitchyOptions.bak,点击确定导入设置


更新自动切换规则(如果遇到无法更新规则列表,可以先运行 goagent ,并把浏览器代理设置为 GoAgent 模式再更新规则,不更新规则只会影响自动切换模式,不会影响其他模式的使用,若确实无法更新也可不更新,直接使用 PAC 模式即可)
 技术分享
图12 在扩展设置页点击 "切换规则" ,点击 "立即更新列表" ,最后点击 "保存” 。
 
 
技术分享
图13单击地址栏右侧Proxy SwitchySharp图标即可进行模式选择
 
  • 模式说明
            GoAgent 模式 除匹配 proxy.ini 中 profile 的直连外,其他全部通过GAE
            GoAgent PAAS模式 全部通过PAAS
            GoAgent PAC模式 根据 GoAgent 自带的 PAC 文件自动判断是否经过代理
            自动切换模式 根据切换规则自动选择是否进行代理,并根据所设情景模式自动选择使用何种代理
            遇到规则中没有的,可以使用扩展的 "新建规则" 按钮自行添加,选情景模式为 "GoAgent" ,使用此模式可以方便的定制自己的代理切换规则
 
  • 存在问题  
           这个扩展偶尔会出BUG,出现设置无误但浏览器提示错误130无法连接到代理服务器,可以将自己的设置导出之后卸载重装。如果遇到无法更新规则列表,可以先运行 goagent,并把浏览器代理设置为 GoAgent 模式再更新规则,不更新规则只会影响自动切换模式,不会影响其他模式的使用,若确实无法更新也可不更新,直接把扩展设置为 GoAgent PAC 模式即可。
 
 
 
参考文档

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。