首先,请允许我为一个可能模糊的问题道歉。
我需要一些关于如何配置下面描述的设置的提示。我并不是要求完成配置文件,但我无法将它们拼凑在一起。
设置
- 多台计算机连接到一个路由器。
- 服务器(Ubuntu Server LTS 14.04)连接到路由器。
- 路由器连接到互联网。
- 公司网站托管在其他地方 -
example.com
- 本地网站托管在本地服务器上 -
git.example.com
,issues.example.com
现在
我正在考虑将路由器设置为使用服务器作为主 DNS。服务器正在运行 Bind9 并将子域(git.example.com
和issues.example.com
)解析为服务器的静态 IP。Apache 服务器内容。Bind9 无法解析example.com
,因此路由器为此使用辅助 DNS(或者 Bind9 可以重定向到另一个 DNS 服务器)。
到目前为止,我可以配置设置以便我可以访问example.com/git
和example.com/issues
,但是我无法访问example.com
。
因此,我的问题是:如何配置 Bind9 以解析git.example.com
但不解析example.com
,以及如何配置 Apache 以git.example.com
不同的方式提供服务(即另一个文档根目录?)issues.example.com
?如果是,Bind9 和 Apache 彼此之间有何关系?
希望这是有意义的,我最近开始接触整个服务器,并且对网络只有非常基本的理论了解。:)
编辑:明确地说;git.example.com
并且issues.example.com
不需要(甚至不应该)从我们的网络外部访问。
答案1
首先,让我们澄清一个误解。这句话并不正确:“Bind9 不解析 example.com,因此路由器使用辅助 DNS 来解析。”DNS 解析器不会遍历已配置的 DNS 服务器列表,直到找到它喜欢的响应。它们通常假设所有服务器都会正确响应,并在一台服务器响应(正面或负面)后停止。
现在来看看手头的实际问题。看来 git.example.com 和 issues.example.com 不是子域,而是服务器/主机名。子域可能看起来像:git.yourdepartment.example.com,其中“yourdepartment.example.com”是子域。如果是这种情况(它们实际上是服务器名称),那么您需要负责 example.com 的 DNS 服务器的管理员为您添加这 2 个 A 记录。然后在您的 DNS(Bind9)服务器上为 example.com 创建转发区域:
zone "example.com" {
type forward;
allow-query {any; }; // modify as you see fit
forwarders {
ip.of.dns.server1;
ip.of.dns.server2;
};
};
(编辑:或者只运行缓存名称服务器)
完成后,您应该能够轻松地在 Apache 中为每个 git.example.com 和 issues.example.com 服务器设置虚拟主机(这方面有很多指南和教程)。
编辑:DNS 和 Apache 之间的关系?DNS 从 URL 中获取主机名,并返回能够为请求提供服务的服务器(在本例中为 Apache)的 IP 地址。就这样。(好吧,这太简单了,但相当准确)