有没有更好的方法来重定向我客户的域名?

有没有更好的方法来重定向我客户的域名?

我在一台服务器上为客户提供多个网站。在开发过程中,我只是在自己的域上创建一个子域。示例client.mydomain.example。通常我的客户已经拥有另一个提供商的域名和电子邮件。我不想为我的客户托管电子邮件。

我尝试了三种不同的设置 DNS 的方法:

  1. clientdomain.example从到进行 HTTP 重定向www.clientdomain.example,然后为 建立 CNAME 记录,www.clientdomain.exmple指向我服务器上的临时子域client.mydomain.example
  2. 有一个从我的服务器IP到A的记录(*.)clientdomain.tld,但是保留MX等指向他们当前的电子邮件主机。
  3. 设置我自己的名称服务器并将其用于我客户的域名。然后按照与 2 相同的方式进行设置。

据我所知,这三种方法各有利弊:

  1. 优点:很方便。我可以更改服务器上的 IP 地址、移动到另一个服务器园区、设置故障保护、负载平衡等等。
    缺点:我强迫我的客户使用www,如果他们已经在 上建立了网站,non-www他们可能会遭受 SEO 攻击(?)。另外,额外的 CNAME 记录不利于页面速度。
  2. 优点:无 SEO 或页面速度问题。设置简单。
    缺点:如果我需要更改 IP,则我需要对所有客户站点进行 DNS 更改。
  3. 优点:没有 SEO 或页面速度问题。如果我需要更换服务器,我可以一次性为我的所有客户网站进行更换,因为 DNS 设置可以在我自己的名称服务器上方便地设置。
    缺点:我需要运行自己的名称服务器。我还必须为我的客户设置 MX 记录,可能还有其他 DNS 记录。

我现在首选的方式是 1,因为我认为在大多数情况下,其优点大于缺点。

有没有其他方法可以从域重定向到服务器而不指定 IP 地址?

澄清:解决方案 1 对我来说是可行的,但由于在到达最终 A 记录之前需要执行两个步骤,因此速度会比较慢。理想情况下,我希望将和都指向non-wwwwww的服务器域,但据我所知,使用 CNAME 记录无法做到这一点,对吗?

答案1

请注意,这CNAME根本不是 HTTP 重定向。

  • 此处的重定向仅从到example.comwww.example.com并且可以永久进行。额外的重定向CNAME在 DNS 级别,将被缓存,因此它实际上不会影响网站性能或速度。

  • 无论谁托管 DNS,您的 Web 服务器都需要知道客户端域。

这就是为什么我更喜欢你的案例#1,以便更好地理解:

  1. 如有必要,指导您的客户添加www.example.com. CNAME client.example.net.能够自行更改 IP 地址。
  2. 建议如何在当前的网络服务器上从非 www 重定向到 www。
  3. client.example.net在您的网络服务器配置中将实际域名绑定到您的。

对于情况 #3,您不仅需要在技术上托管 DNS 服务器,而且还要负责在客户端需要新的第三方记录时进行更新。

答案2

因此,如果我理解正确的话,您想要做的是在开发阶段之后能够简单地将 cname 指向您的服务器(client.mydomain.tld)并在您自己的服务器上处理其余部分。

我目前尝试在 Cloudflare 设置中管理 DNS 条目,只需放置两个 cname 记录,一个 www.client.tld,一个 client.tld。之后,您可以在服务器上处理请求,只需根据具体需求重写 URL 即可。

我也会选择您的第一个选项,因为它最容易处理。

我还在这里找到了一些有关使用 CNAME 记录的信息: 子域名应使用 CNAME 吗?

相关内容