APJP更新,发布GAE版
大家熟悉的GAE代理工具hyk-proxy和WallProxy都有php模式,不过主要是用来弥补gae本身的不足一般不推荐单独使用;而APJP作为php空间翻墙的利器在其推出Android版后又发布了GAE版,不过刚刚发布还不完善,不像hyk-proxy和WallProxy那么强大。
APJP_APPENGINE 簡介
於香港時間2011年7月5日APJP代理項目發佈基於Google App Engine JAVA平台的服務器端,
客戶端仍舊使用APJP-0.7.0裡的JAVA客戶端和安卓(Android)系統的APJP_ANDROID-0.1.0,
APJP個人代理方案現在可部署到一般常見的PHP主機或Google App Engine JAVA平台
部署APJP_APPENGINE-0.2.0的準備
APJP_APPENGINE因基於由Google提供的應用平台GAE,因而必需申請google的GAE服務,以下為
申請google免費應用服務和部署APJP_APPENGINE的簡介
1)首先需要申請一個gmail賑號,然後到 https://appengine.google.com 開通GAE免費服務,
每個賑號可得到10個免費應用, 每個應用每天流量為1G
2)開通後創建一個應用,該應用的網址為 http(s)://your-app-id.appspot.com
your-app-id是自行選取的名稱
3)下載Google 應用服務引擎 SDK並安裝,下載點為
下載Java 專用的 Google 應用服務引擎 SDK,然後安裝
4)於本項目內下載APJP_APPENGINE-0.2.0,並解壓縮,得到README.txt和一個war的目錄,
裡面包含index.html和WEB-INF目錄
5)以Ubuntu Linux為例,假設解壓縮後的APJP_APPENGINE置於$HOME目錄,
編緝$HOME/APJP_APPENGINE/war/WEB-INF/appengine-web.xml文件,
找到
<application>
</application>
改為
<application>your-app-id
</application>
your-app-id為你的應用名稱, 執行
appengine-java-sdk-1.5.0/bin/appcfg.sh update $HOME/APJP_APPENGINE/war/
,命令列上將會提示輸入gmail賑號及密碼,上傳後訪問
http://your-app-id.appspot.com/KEY ,得到一個16個數字和字符的隨機組合,
例如: KEY=YWbKkCGgACNYeheG
Windows下開啟cmd.exe,執行
appengine-java-sdk-1.5.0\bin\appcfg.cmd update APJP_APPENINE\war
6)編緝APJP_APPENGINE/war/WEB-INF/appengine-web.xml文件
找尋
<property name="APJP_KEY" value=""></property>
改為
<property name="APJP_KEY" value="YWbKkCGgACNYeheG"></property>
這裡以上述的KEY作為例子,需填入訪問http://your-app-id.appspot.com/KEY
產生的APJP鑰匙
7)再次執行
appengine-java-sdk-1.5.0/bin/appcfg.sh update $HOME/APJP_APPENGINE/war/
並輸入gmail賑號和密碼,上傳成功後會有提示,訪問部署了的應用,會出現如下訊息
Hello App Engine!
Available Servlets:
HTTPServlet
HTTPSServlet
KEYServlet
表示部署GAE上的APJP服務器端成功
設定APJP_ANDROID客戶端和PC上的APJP客戶端
A)於PC上的作業系統,以Ubuntu Linux為例,假設APJP-0.7.0置於$HOME目錄
編緝APJP/JAVA/APJP.properties ,找到APJP_KEY, 填入相同的鑰匙,例如
APJP_KEY=
改為
APJP_KEY=YWbKkCGgACNYeheG
修改 APJP_LOCAL_HTTP_SERVER_REQUEST_URL=
改為
APJP_LOCAL_HTTP_SERVER_REQUEST_URL=http://your-app-id.appspot.com/HTTP
再修改APJP_LOCAL_HTTPS_SERVER_REQUEST_URL=
改為
APJP_LOCAL_HTTPS_SERVER_REQUEST_URL=http://your-appid.appspot.com/HTTPS
因GAE應用提供SSL安全連線,可使用https(備註1)
其它參數設置請參考本項目wiki裡的HowToInstall
B)於安卓(Android)系統上設定APJP_ANDROID客戶端
安裝APJP_ANDROID客戶端,請參考本項目wiki裡的AndroidApjpClient
解動apjp,點擊Perferences按鍵
APJP_KEY填入相同的鑰匙,然後尋找APJP_LOCAL_HTTP_SERVER,在REQUEST_URL填入
找到APJP_LOCAL_HTTPS_SERVER,在REQUEST_URL填入
其它參數設定及使用參閱wiki裡的AndroidApjpClient
補充
備註1)於PC上以https連接APJP_APPENGINE服務器會出現錯誤,這是因為沒有google的有效
證書(CA),故需要導入證書到 APJP/JAVA/APJP.jks文件裡,以下鏈接為作者給出的
備註2)APJP_ANDROID客戶端可以使用https連接服務器,而不需要導入證書,作者猜想是
安桌平台並不檢測證書,故能連上,但會出現無效證書警告
備註3)原因和(備註2)相同
基於免費Google App Engine 應用服務引擎對於上傳下載有限制,不能大於1M,
APJP_APPENGINE-0.2.0已突破其1M限制,上傳/下載單一文件為最大為35M,對
youtube的支援亦較好,如果部署了0.1.0版,建議升級
APJP使用自簽名證書(self-signed certificate)作為對https連接的解決方案,
不管是GAE還是PHP平台,都會出現證書警告, 嚴格的網站,例如gmail
可能會因證書問題而無法登錄
因為需要取得APJP_KEY的隨機鑰匙,故需要執行 appcfg.sh update war 兩次,以下
為非官方產生鑰匙的shell腳本, 以Ubuntu Linux系統為例
#! /bin/bash
#$PROG: apjp_key.sh
# non official APJP_KEY generator, public domain
char=”0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”
length=${#char}
KEY=
min=1
max=16
while (( $min <= $max )) ; do
pick=${char:$((RANDOM%length)):1}
KEY=”${KEY}${pick}”
((min++))
done
printf ‘%s\n’ “KEY=${KEY}”
exit 0
##########END here####################
在終端機下執行腳本取得APJP_KEY的鑰匙後,於服務器端和客戶端修改參數
APJP作者的twitter id: @jvansteirteghem 如有任何對於APJP的建議或發現BUG,
請在Twitter上或本專案的issue告訴他,謝謝
APJP代理方案為開源軟件(Open Source Software)
项目地址:http://code.google.com/p/apjp/
下载地址:http://code.google.com/p/apjp/downloads/list
這個東西我無法上傳到我自己的Appengine啊,總是提示上傳連接超時什麼的,是不是中國把相關上傳的服務器給封鎖了
应该是被墙了,你挂国外vpn上传试试。
另外使用时估计也要代理或者修改hosts
果然是這個問題,可是我的電腦凡是Google的服務都是通過IPv6訪問的,不應該有被牆的問題啊
应该是有些服务没有通过IPv6网络上的IPv6列表不可能都那么全面。