我已构建了一个应用程序并计划将其托管在 example.com 上。我有大约 10 个客户希望将该应用程序托管在他们的品牌名称上(白标)。与其部署相同的应用程序 10 次,我更愿意将该应用程序托管在 example.com 上,并将每个客户域的 CNAME 指向 example.com
我实现了同样的操作,但由于某种原因,它没有按预期工作。
我当前的设置:
customer1.tld. 60 IN CNAME prod.example.com.
prod.example.com. 59 IN A 62.xx.xxx.204
当我在浏览器上访问 prod.example.com 时,它可以无缝运行,但是当我输入 customer1.tld 时它不起作用。逻辑 - 客户的 DNS(CNAME)应该指向我的主机名,而我的主机名(A 记录)应该指向我的服务器 IP。我遗漏了什么吗?
我正在使用的其他相关信息:
- 灶神星
- Ubuntu 16.04
- 阿帕奇/2.4.29
答案1
Web 服务器需要知道所有这些别名:将它们列在ServerAlias
指示您<VirtualHost>
的申请。
<VirtualHost>
ServerName prod.example.com
ServerAlias customer1.example.net customer2.example.org
. . .
</VirtualHost>
答案2
不允许在域名的顶端使用 CNAME。因此您需要这样做:
customer1.tld. 60 IN A 62.xx.xxx.204
customer2.tld. 60 IN A 62.xx.xxx.204
prod.example.com. 59 IN A 62.xx.xxx.204
www.customer1.tld 60 IN CNAME prod.example.com.
www.customer2.tld. 60 IN CNAME prod.example.com.
一些基于云的 DNS 服务(例如 Route 53)提供了一种称为别名的新服务,可用于解决此问题,因为它们以这种方式允许在顶点使用 CNAME。