在GAE上使用裸域(Naked domain)

标签:Google App Engine

今天在Nick的博客看到一篇《'Naked' domains on 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,因此取消了裸域。

不过有几种方法可以重定向裸域到其子域,其中zoneeditdyndns这2个DNS服务提供对裸域的重定向,使用比较方便。
其他几种我就不说了,效率不太高。

1条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?