如何使用 CNAME 加载 Web 应用程序

如何使用 CNAME 加载 Web 应用程序

我已构建了一个应用程序并计划将其托管在 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。

相关内容