如何配置多级子域名 DNS 记录

如何配置多级子域名 DNS 记录

我已经为我的应用程序配置了阶段服务器的 DNS 记录,这样当有人访问时stage.example.comwww.stage.example.com可以正常工作。(实际上,如果他访问第一个服务器,Web 服务器会将他重定向到第二个服务器。)

我针对此设置的区域配置文件是:

@         10800 IN A     1.2.3.4
stage     10800 IN CNAME example.com.
www.stage 10800 IN CNAME example.com.

并且它有效。

现在我想以相同的行为配置我的实时服务器(允许www.example.comexample.com),同时保持与阶段子域相关的现有功能,但我无法找出正确的方法 - 或者是否有可能。

我所有的搜索最终都以关于为一级子域进行配置的示例结束,所以我在这里有点迷失。

例如,以下配置是我想要的,但它不起作用

example.com           10800 IN A 5.6.7.8
stage.example.com     10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage.example.com 10800 IN CNAME stage.example.com.

欢迎任何想法或建议。

先感谢您。

答案1

我认为您不需要将 .example.com 附加到配置的第二行和最后一行。您的 DNS 服务器已经知道您正在处理 .example.com,因为这是父域。

所以我相信你需要改变:

example.com           10800 IN A 5.6.7.8
stage.example.com     10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage.example.com 10800 IN CNAME stage.example.com.

到:

example.com           10800 IN A 5.6.7.8
stage                 10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage             10800 IN CNAME stage.example.com.

因此,您将拥有一个解析为 5.6.7.8 的 www.example.com 的 CNAME,以及一个解析为 1.2.3.4 的 www.stage.example.com 的 CNAME。

看起来好像您还需要一个域名的@记录,就像您在问题中的第一个代码片段中所显示的那样。

答案2

从...开始Tedwin 的回答以及其中之一第一的搜索结果并结合几个dig我解决我的主要困惑点:

配置左侧的名称会附加父域 - 除非已经包含。

因此,此配置

live      10800 IN A 5.6.7.8
stage     10800 IN A 1.2.3.4
www       10800 IN CNAME live
www.stage 10800 IN CNAME stage

产生以下挖掘结果:

$ dig www.example.com

;; ANSWER SECTION:
www.example.com.        375 IN  CNAME   live.example.com.
live.example.com.       375 IN  A       5.6.7.8

$ dig www.stage.example.com

;; ANSWER SECTION:
www.stage.example.com.      375 IN  CNAME   stage.example.com.
stage.example.com.          375 IN  A       1.2.3.4

因此,为了让它按我想要的方式工作,我所要做的就是替换

live 10800 IN A 5.6.7.8

@ 10800 IN A 5.6.7.8

相关内容