我要将站点从一台服务器迁移到另一台服务器。该站点有很多实时事务活动读取/写入后端数据库。
我相信我应该降低域上 DNS 中的 TTL,这样一旦我准备好进行切换,我需要做的就是更新分配给该域名的名称服务器,流量将开始转移到新服务器。
如果我对这个过程的理解是正确的,我应该在我当前的服务器上将 TTL 设置为什么?
我还需要在旧服务器上设置“刷新”、“重试”和“过期”值吗?如果是这样,它们也应该设置什么?
谢谢
这是我的过程
www.blah.com 托管在托管服务提供商“hoster
www.blah.com 的 ns1 记录为 ns1.myFirstNameServer.net,其 ns2 记录为 ns2.myFirstNameServer.net
我设置了一个新的名称服务器,其 ns 记录为 ns1.aNewNameServerIdecidedToBuy.net 和 ns2.aNewNameServerIdecidedToBuy.net - 它的 IP 指向当前“主机”处的当前服务器
我的两个名称服务器域(myFirstNameServer.net 和 aNewNameServerIdecidedToBuy.net)都已设置并与我的注册商一起驻留在他们的 dns 设置中——它的 IP 指向我位于新“主机”的新服务器
一旦我准备好进行切换,我将登录到我的注册商并更改 www.blah.com 上的名称服务器设置,如下所示:
- 从
ns1.myFirstNameServer.net
到ns1.aNewNameServerIdecidedToBuy.net
- 从
ns2.myFirstNameServer.net
到ns2.aNewNameServerIdecidedToBuy.net
为了简单起见并一次只做一件事,您不应在此迁移期间更改域的 NS 记录。如果要迁移网站并迁移权威 DNS 服务器,请分 2 个步骤进行。要迁移网站,只需更改 A 和 AAAA 记录。
在 A 和 AAAA 记录上设置的常规“低值”TTL 是 300(5 分钟)。
如果您可以在短时间内同时操作两台服务器,那么您可以做得比基于 DNS 的迁移更好。您可以将旧服务器设置为将请求代理到新服务器,以便仍然联系旧服务器的客户端将他们的请求转发到新服务器。使用 Apache 和
ProxyPass
.稍后,如果您想移动 DNS 托管,请更改 NS 记录并更改父区域中的委派(即在您的域的注册商处进行更改)。如果您可以提前在新服务器中部署区域并让两组名称服务器为该域服务一段时间,那将是理想的选择。
编辑:详细信息
ProxyPass
这个 Apache 配置片段,放在
<VirtualHost>
你的服务器部分,或者如果没有,直接放在服务器配置中<VirtualHost>
,将允许旧服务器将所有请求转发到新服务器:你通常应该有
ProxyPassReverse
withProxyPass
但在这种情况下它可以省略,因为它没有效果,因为旧站点和新站点具有相同ServerName
的 .您可能希望同时从旧服务器配置中删除任何其他
<Location>
、Alias
、RewriteRule
或其他 URL 映射指令,以确保代理规则且仅代理规则得到处理。(当然,请保留备份,以防您需要退出迁移!)确保旧服务器知道网站域的正确新IP 地址,否则它将把请求代理回自己!