Apache2 和域控制

Apache2 和域控制

我有个问题。

如果我创建一个指向 Apache2 服务器的 A 记录,并创建一些带有子域的虚拟主机。然后我可以访问子域而不做另一条记录吗?

答案1

您似乎混淆了 DNS A 记录和 Apache VirtualHosts。它们在完全不同的层面上运作,并且不能真正互换。

对于 Apache,当您指定一个节时,您就告诉 apache 在收到对该节中<VirtualHost>任何 s 的请求时要做什么。ServerName然而,除非这些名称在 DNS 中指向您的服务器,否则外界不会向您的服务器询问它们,因此您两者都需要。

(是的,我知道我在这里跳过通配符,我试图让那些在 DNS 和虚拟主机方面显然是新手的人保持简单明了)

让我们举个例子:假设您有一条 A 记录指向www.foo.com您的服务器,地址为1.2.3.4。你有以下VirtualHost节:

<VirtualHost *:80>
    ServerName www.foo.com
    DocumentRoot /var/www/html
    -- etcetera ---
</VirtualHost>

这告诉您的 apache 服务器,端口 80 上请求 www.foo.com 的任何联系人都应根据该节中的说明进行处理。

现在假设您添加一个子域:

<VirtualHost *:80>
    ServerName sub.foo.com
    ServerAlias sub2.foo.com

    DocumentRoot /var/www/subdomain/html
    --- etc ---
</VirtualHost>

您现在已经告诉您的 apache 服务器如何回应请求sub.foo.comsub2.foo.com。然而,除非你添加一条指向sub.foo.com没有1.2.3.4人会知道的A 记录向您的服务器询问该域。

答案2

不可以。您需要另一个指向相同(或不同)IP 地址的 A 记录或指向您现有域的 CNAME 记录。

相关内容