假设我有一个域名fish.example.com
,其中的 a 记录指向运行 apache/nginx 的 http 服务器,并为该域名设置了 vhost。我还创建了一个从cow.example.net
到的CNAMEfish.example.com
哪些域名最终到达我的 apache/nginx,并且此行为可以由 apache/nginx 配置吗?
答案1
这正是 cname 的用途,您提出的 DNS 建议非常可靠。您需要为 cow.sample.net 和 fish.example.com 定义一个虚拟主机,因为这两个主机都可能用于访问您的网站(除非您只打算让客户端使用其中一个进行连接)。
这可以在 apache / nginx 的虚拟主机配置中完成:
<VirtualHost cow.sample.net>
DocumentRoot "/www/site"
ServerName cow.sample.net
</VirtualHost>
<VirtualHost fish.example.com>
DocumentRoot "/www/site"
ServerName fish.example.com
</VirtualHost>
答案2
无论在浏览器地址栏中输入什么名称,浏览器都会以 HTTP 标头的形式将其发送到服务器host
,您的服务器将检查该标头以正确提供其虚拟主机的服务。