声明:本文不是教程,教程请参考本文末尾链接。
在研究 SourceForge Project Web 时,看到有关Google App Engine免费空间的文章,于是很有兴致的去折腾了一番。之所以用“折腾”二字,是因为要使用 Google 的各项服务还真不容易——基于一些众所周知的原因,Google 的有些服务无法直接访问(如 appspot, blogspot, groups 等),还有些服务则时常突然中断一分钟或更久,包括主营的搜索业务和 Google Code 等。
所以使 用Google App Engine 得做好心理准备:
一、账号注册
不得不说,目前能运行在 Google App Engine 下的开源或者免费的应用还真不多,比如很难找到一款能匹敌 WordPress 的博客系统。可自行搜索 Google App Engine 应用大全或参考这里。
applicaiton-id
和版本信息,这些配置 Python 应用在 app.yaml
文件中,Java 应用在 WEB-INF/appengine-web.xml
文件中。java.lang.IllegalStateException: Found a jar file too large to upload: "D:\temp\appcfg2349572107442465681.tmp\WEB-INF\lib\appengine-tools-sdk-1.6.5.jar".
解决途径有2个:
一是上传时使用参数 --enable_jar_splitting
;
%GAE_SDK_HOME%\bin\appcfg.cmd --enable_jar_splitting update <javaappwardir>
二是压缩或者分拆大的jar文件。
第一种未亲自测试,网上有人说无效(参考1,参考2)。本人采用第二种,将大的jar包解压,然后通过 7zip 重新压缩成 zip,改后缀名为jar,文件大小基本上小于 10M 了,再次上传,没有出现问题。
基于本文开头所说,*.appspot.com
是无法直接访问的,即使自己通过 hosts 解决了这个问题,别人还是无法访问到你的 GAE 应用,比如在 Google App Engine 上安装一个博客,你可能需要更多的人能够看到而不仅仅是自己能访问,这个时候就需要绑定自己的域名了。
绑定域名的过程请参考Google的这篇文章和免费资源部落的这篇文章,要注意几点:
可以绑定通配符子域名(泛域名),前提是你的 DNS 服务支持泛域名解析。Google 的文档中介绍了个大概,但我感兴趣的却是绑定通配符子域名后能不能自动和 Google App Engine 应用中的各个版本对应?
实践证明,是可以的!
示例如下
1) 在 Google Apps 中的添加 Google App Engine 应用,并在 Google Apps 管理的设置里添加网址 blog.wondor.com 和 *.web.wondor.com(见图2);
2)在域名的 DNS 服务商处设置了这两个域名的 CNAME 解析;
3)在 Google App Engine 应用中设置各个版本如图1,其中版本“blog”设置成默认。
此时可以通过以下网址访问各版本:
以后在 Google App Engine应用中每多增加一个版本,都不必再调整 Google Apps 的域名设置,也不必增加 DNS 服务的解析地址了,通过 <version>.web.wondor.com 即可访问。
以上可以看出“DNS 泛域名解析 + Google Apps 通配符子域设置 + Google App Engine 应用多版本”的功能是非常强大的。 另外,Google 支持绑定裸域名和 www 域名。如果要在 Google 上发布您的网站,可以将 www 域和裸域名绑定在 Google App Engine 应用的默认版本上或者 Google Apps 的 Sites 上(Google Sites 是 Google Apps 中的又一个产品)。
Source |
|