如何在将用户从旧 IP 重定向到新 IP 时更改 DNS 的 A 记录?

如何在将用户从旧 IP 重定向到新 IP 时更改 DNS 的 A 记录?

我有一个指向 ipA 的 DNS 记录(A 记录)。我想将记录更改为 ipB,但是一旦 ipB 正在使用,我就无法接受 ipA 上的任何内容,因为应用程序不能存在于两个不同的地方。

该应用程序使用 HTTP 协议运行。考虑到我没有 root 权限,但我可以访问 NGINX 配置,我有哪些选项可以将用户重定向到 ipA?

答案1

当客户端请求 DNS 名称的 IP 地址时,解析 DNS 服务器和客户端都会缓存响应。默认 TTL(缓存响应的秒数)通常为 12-24 小时。可以暂时更改此设置以使迁移更顺畅。

简单选项 - 在迁移应用前至少 24-48 小时将 DNS 记录上的 TTL 减少到 300(5 分钟)左右,这样客户端应该只会在短时间内缓存 DNS 名称的 IP 地址。在更改 IP 地址后解析 DNS 名称的任何客户端在旧 IP 地址缓存期间将继续被定向到旧 IP 地址,但一旦旧 IP 地址过期,它们就会将其解析为新 IP 地址。缓存中有旧 IP 地址的客户端将有几分钟的停机时间。

另一种选择是为您的应用程序创建一个具有不同名称的额外 A 记录,该记录将立即解析为新的 IP 地址,然后在旧服务器上的 NGINX 配置中设置临时重定向。

我不熟悉 NGINX,但 Google 找到了一些可能有帮助的说明:https://www.liquidweb.com/kb/redirecting-urls-using-nginx/

  1. 用户想要访问 app.somedomain.com,但他们的计算机 DNS 缓存中有旧的 IP 地址,或者解析 DNS 服务器的缓存中有该地址
  2. 他们的 HTTP 请求转到您的旧服务器,旧服务器将他们重定向到您的临时域名 app2.somedomain.com,解析为您的新 IP 地址,然后将新的 HTTP 请求发送到您的新服务器。
  3. 一旦 DNS 缓存中的旧记录过期,未来的请求将解析到新的 IP 地址,并直接转到新服务器

相关内容