对 CNAME 和子域名感到困惑

对 CNAME 和子域名感到困惑

我有一个位于 exampleapplication.com 的应用程序。它是一个位于 Apache/Passenger 堆栈上的 Rails 应用程序。

该应用程序设置为使用子域约束指向用户帐户(例如 user1.exampleapplication.com)。

我希望用户能够透明地将他们自己的域名指向他们的子域名。

因此 exampleuser.com 指向 exampleuser.exampleapplication.com。

我已为 exampleapplication.com 设置了一条 A 记录,以指向我的服务器。我已为 exampleuser.com 设置了一个带有 A 记录的 DNS 区域,以指向服务器。

我应该将 CNAME 记录放在哪个区域?

答案1

不确定您的设置到底是什么,但您可以通过以下两种方式之一进行操作。您当然可以为每个帐户创建 CNAMES,但如果你知道你的域名只用于客户帐户,只需设置一个通配符 CNAME,这样*.exampleapplication.com任何请求(无论子域如何)都将始终指向你的应用程序。你的应用程序必须足够聪明才能弄清楚哪个用户正在登录,但你明白了。

您的 CNAME 应始终托管在您的 DNS 区域中。但是,我实际上建议只为此创建 A 记录。因此,您可能具有以下内容:

- A exampleapplication.com       -> 123.123.123.123
- A user1.exampleapplication.com -> 123.123.123.123
- A *.exampleapplication.com     -> 123.123.123.123

它节省了解析第一个域的二次查找,然后解析 exampleapplication.com 域的 A 记录。

然后,您的客户端只需在其 DNS 区域中创建一个 CNAME 即可指向 user1.exampleapplication.com。

希望这一切都有意义。

相关内容