在GAE上使用裸域(Naked domain)
2009 12 18 01:49 AM 4640次查看
分类:Google App Engine 标签:Google App Engine
首先介绍一下裸域(naked domain),它是指没有指定服务名(例如www、mail)的子域名。举例来说,google.com是裸域,而www.google.com不是。
一开始Google App Engine实际上是支持裸域的,可后来取消了。我原以为是改变服务内容了,看了该文才知道是技术上的原因。
Nick说给一个域名指定别名(CNAME)后,会同样作用于该域名下的所有子域。而如果对裸域使用了别名,那么该裸域就不能添加其他记录(例如mx)和其他子域。
不能添加其他记录是容易理解的,因为CNAME表示所有的信息都往别名指向的域名去查询,而不在自己这查询,所以添加其他记录也是无效的。
而不能添加子域这点,我没找到参考资料,只能给个推测。大概是查询aaa.bbb.ccc时,会先查询ccc的域名服务器,找到bbb.ccc的NS记录;接着询问该NS服务器,定位aaa.bbb.ccc;如果bbb.ccc没有CNAME和NS记录,那么就由改NS服务器返回aaa.bbb.ccc的记录信息;但如果bbb.ccc是CNAME,那么就去该CNAME对应的主机找NS记录,再由这个NS去查询aaa.bbb.ccc的记录信息;而一般情况下是不会有这种记录存在的,于是便找不到aaa.bbb.ccc了。简单来说,就是NS记录被覆盖了。
而Google为了提供全球性的服务,肯定不能用A记录,而必须是CNAME,因此取消了裸域。
不过有几种方法可以重定向裸域到其子域,其中zoneedit和dyndns这2个DNS服务提供对裸域的重定向,使用比较方便。
其他几种我就不说了,效率不太高。
向下滚动可载入更多评论,或者点这里禁止自动加载。