通过 DNS 从旧服务器重定向到新服务器

通过 DNS 从旧服务器重定向到新服务器

我有一台服务器(服务器 A),Windows Server 2003,我曾在该服务器上托管一些网站。现在它们托管在另一台服务器(服务器 B)上。我最近将 godaddy 上的 DNS 切换为指向新的名称服务器。

我可以在服务器 A 上执行什么操作,将所有对服务器 A 的请求指向服务器 B(基本上是从服务器 A 重定向到 B)?那会是什么类型的记录?

我正在等待我所做的 DNS 更改完全解决。

编辑

进一步澄清。

test.com 可能仍解析到服务器 A,我希望服务器 A 上有一条 DNS 记录,告诉它转到新服务器。这可能吗?

答案1

您可以使用301 重定向在旧服务器上指向新服务器。DNS 中没有办法做到这一点,但它将确保所有流量到达预期目的地,而旧记录仍缓存在其他地方。

答案2

您无法创建任何 DNS 记录来执行此操作。您需要留出时间让 DNS 更改传播。在更改之前将 TTL 设置为两倍于旧 TTL 的一小时左右(通常是几天)将显著加快传播速度。

您可以从旧服务器代理新服务器。在 DNS 更改完全传播之前,旧服务器上会有一些流量。如果所有域都移动了,您还可以考虑在旧服务器的防火墙上执行 DNAT。

答案3

这无法通过 DNS 实现,因为您无法强制 DNS 客户端与您的 DNS 服务器通信。它可能只会使用已有的缓存记录。如果您可以强制它进行查询,那么您也可以返回新服务器的地址。

相反,您可以将服务器 A 配置为对所有请求都重定向到服务器 B。我不熟悉 Windows Server,但 Apache 服务器可以使用 mod_rewrite 模块来实现这一点。

另一个选择是在服务器 A 中安装反向代理,替换您的网络服务器,该代理接受所有请求并从服务器 B 获取页面。然后服务器 A 将答案返回给客户端。我们正在使用这个确切的解决方案来解决您遇到的相同问题。我们希望在将数百个网站迁移到新服务器时实现零停机时间。

您可以轻松设置 Nginx 服务器或类似的东西作为反向代理。将其安装在备用端口(如 8000)上,并将其设置为反向代理到服务器 B。使用http://服务器A:8000/如果代理有效。关闭 A 上的 Web 服务器,释放端口 80,并将代理更改为侦听端口 80。现在它将通过服务器 B 处理所有传入请求。一段时间后,一旦 DNS 记录 TTL 过期,所有客户端都将直接查询服务器 B,服务器 A 将不再接收任何流量。

答案4

如果您可以访问服务器 A 上的 DNS 服务器,这非常简单。

开始 -> 管理员工具 -> DNS

例如,请参见屏幕截图。我猜你目前有 A/CNAME IP 作为服务器

只需将这些 IP 更改为 serverb 即可:)

https://i.stack.imgur.com/iW2RD.png

相关内容