服务器迁移和DNS传播

我们正在将我们的商店转移到一个新的IP地址的服务器,我试图确定是否有一种方法可以最大限度地减less在DNS传播过程中“看到”我们的旧网站的用户数量。

目前,计划一旦开始迁移,旧网​​站将进入维护模式,以便用户在登陆旧网站时将看到503消息。

基本上我试图解决这个用例:

服务器移动完成,我们已经将域Alogging更新为新的IP地址。 在DNS更改完全传播之前,用户访问我们的站点并将其导向旧服务器。

有什么方法可以表明我们的网站现在生活在旧服务器上的用户的新IP地址上? 我知道我可以通过使用新的IP地址,而不是域redirect他们,但我宁愿不使用该解决scheme,如果可能的话。 有没有什么方法可以表明example.com现在应该映射到服务器级别的111.111.111.111

从我见过的关于处理DNS传播的其他答案,我怀疑这是不可能的。 如果这是不可能的 ,我很好奇,如果有一个很好的理由。 看起来好像有一个机制可以使服务器能够告诉用户他们请求的域现在应该映射到一个不同的IP地址。

没有这样的机制。 这是因为它是DNS及其caching机制的工作方式。

这通常在迁移之前通过将Alogging的TTL设置为尽可能最小的值来处理,以便DNS服务器尽可能less地保存IP地址。

但是,在极less数情况下,您可以将TTL设置为零,这将完全消除延迟。 通常,DNS提供商允许的最小TTL是五到十分钟,这是您的站点对某些用户不可用的时间。

另一种方法是在旧Web服务器上设置反向代理服务器,该服务器在迁移期间将请求和响应中继到新服务器。 这只会使浏览者的页面加载时间稍微长一些,但他们可以随时访问网站。

编辑:正如在其他答案中注意到的,代理默认丢失客户端IP地址。 但是,可以configuration代理,以便将客户端IP地址作为HTTP标头添加到旧服务器到新服务器的请求中,然后新服务器可以从标头中应用IP地址。

您可以启用IP转发,然后在IP级别转发stream量(请参阅http://www.debuntu.org/how-to-redire-network-traffic-to-a-new-ip-using-iptables/为例)。 我相信这比代理有一个好处,因为你维护谁连接到网站的IP地址,并且logging正确。