我了解A记录应指向IP地址,而CNAME必须指向另一个域,例如
A foo.com 100.0.0.1
CNAME www.foo.com foo.com
这样,如果一个人试图去foo.com或www.foo.com,两个请求都会转到同一台服务器。然后我们的服务器可以将foo.com重定向到www.foo.com进行标准化(特别是涉及SSL证书时)。
但是DNS记录是否可能没有A记录,而是使用指向另一个动态域(而不是固定IP)的CNAME记录来管理简单域?例如
CNAME @ foo.gutensite.net
CNAME www.foo.com foo.gutensite.net
foo.com和www.foo.com都会指向foo.gutensite.net。
我们经营一家网络托管公司,我们想告诉客户将其域DNS指向动态位置(而不是固定的IP地址)。我们不想让它们指向特定的IP地址,因为有时我们需要在调整基础架构时更改服务器IP地址,例如启动新服务器,更改托管平台等(仅供参考,我们使用负载均衡器,但有时我们需要更改IP地址,因为我们将客户端放在不同的集群上)。但是,这意味着让数百个客户端更新其DNS设置,这对非技术客户来说是一场噩梦。
因此,如果相反,我们可以让他们通过CNAME记录将DNS指向动态位置,然后我们可以在需要时更改DNS设置,例如
CNAME www.foo.com foo.gutensite.net
我们控制foo.gutensite.net
(我们的子域)指向它们所托管的任何服务器节点(如果我们必须更改它)。
由于DNS似乎不允许没有指向IP地址的A记录的DNS记录,我们正在考虑一个hacky解决方案。我们可以启动一个简单的服务器,它具有永不改变的静态IP地址(可以在任何地方托管)。此服务器唯一的工作是将所有流量重定向到子域www。{DOMAIN}。然后我们告诉客户将他们的A记录指向此IP地址,并且当访问者请求foo.com时,它将重定向到www.foo.com,此时正确的CNAME记录将接管。
我不喜欢这个解决方案,因为它通过抛出重定向到www版本的诱饵来规避A记录的目的。但它会起作用,我无法想到任何真正的缺点。
有什么想法吗?