我有一个开发环境和一个生产环境。
生产环境位于example.com
一台服务器(77.123.45.67)。
在一个完全独立的服务器(不同的主机,一切)上,我有dev.example.com
(77.765.43.21)。
我正在尝试在开发服务器上创建一个子域:dev2.dev.example.com
。我尝试向 dev DNS 区域文件添加一个条目:
dev2.dev.example.com CNAME dev.example.com
但是,它仍然不起作用。我还需要做其他事情吗,还是我做错了?
答案1
您的整个方法看起来有点奇怪,但如果您坚持要创建一个名为 dev2.dev.example.com 的子域,请继续使用 A 记录编辑 DNS。
dev2.dev 77.765.43.21
接下来,您需要编辑 Apache.conf 文件并添加 dev2.dev.example.com 作为“ServerName”或“ServerAlias”。
答案2
您无需向dev
区域添加条目。事实上,您甚至不应该有区域。一切都应在区域dev
中完成。example
答案3
您可以采取两种方法:
- 将所有内容保留在 example.com 区域文件中,或者
- 将 dev.example.com 委托给单独的名称服务器。
选项 1 很简单:将所有内容保存在同一个文件中,无需设置第二台服务器。缺点是您的生产和开发 DNS 设置位于同一个文件中,这可能不是您想要的——尤其是如果您像我一样容易输入配置文件错误!
如果您选择这条路线,您的区域文件应该看起来像这样:# example.com # SOA,NS 等。
@ IN A 77.123.45.67
dev IN A 77.765.43.21
dev2.dev IN CNAME dev
如果标签不是以点字符结尾,则会自动附加区域名称。
选项 2 稍微复杂一些:您需要设置第二个 DNS 服务器来托管 dev.example.com 域。如果您尝试复制生产环境,这可能是您想要的。假设您的第二个名称服务器位于 1.2.3.4,它将如下所示:
# example.com
# SOA, NS, etc.
@ IN A 77.123.45.67
dev IN NS 1.2.3.4
对于其他区域:
# dev.example.com
# SOA, NS, etc.
@ IN A 77.765.43.21
dev2 IN A 77.765.43.21
这会将整个 dev.example.com 域的权限委托给名称服务器 1.2.3.4,方式与 .com 将 example.com 委托给您当前的名称服务器相同。