H. *_*nce 3 domain-name-system ttl
我要将站点从一台服务器迁移到另一台服务器。该站点有大量实时事务活动读取/写入后端数据库。
我相信我应该降低域上 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>
,将允许旧服务器将所有请求转发到新服务器:
<Location />
ProxyPass http://www.example.org/
</Location>
Run Code Online (Sandbox Code Playgroud)
您通常应该使用ProxyPassReverse
withProxyPass
但在这种情况下可以省略它,因为它不会产生任何影响,因为旧站点和新站点具有相同的ServerName
.
您可能想要删除任何其他<Location>
, Alias
,RewriteRule
从旧服务器配置中或其他 URL 映射指令,以确保代理规则和仅代理规则得到处理。(当然,请保留备份,以防您需要退出迁移!)
确保旧服务器知道网站域的正确新IP 地址,否则它会将请求代理回自己!