Nginx-服务器更改-将所有流量重定向到新的IP地址?

Nginx-服务器更改-将所有流量重定向到新的IP地址?

我想更改网站的服务器,通常的做法是这样的:

  1. 检查指向当前 IP 地址的域的 TTL。
  2. 将当前域的 A 记录更改为指向新的 IP 地址。

但在这种情况下,仍然会有请求指向当前 IP 地址,直到所有名称服务器都了解该更改。

我该如何防止这种情况发生? NGINX 反向代理是否是将所有流量定向到新 IP 地址的正确工具? 如果是这样,我是否只需要在当前服务器上这样做就可以了?

location ~ \ {
    proxy_pass http://newipaddress:8000;
}

谢谢!

答案1

出于多种原因,反向代理是实现此类更改的完美工具。以下是其中的一些:

  • 正如你提到的,一些名称服务器会向客户端提供旧的 ip 地址,因此一些客户端会请求旧服务器
  • 随着 DNS 的改变,你需要一个新的公共 IP 地址,或者至少更改你公司防火墙上的 nat 配置
  • 如果新服务器出现故障,由于 ttl 原因,切换回服务器需要更多时间

总结一下:更改 nginx 上的后端 ip 可最大限度地减少公司防火墙的更改,并使您能够快速切换。

您提到的配置仅仅是:

location ~ \ {
   proxy_pass http://newipaddress:8000;
}

站点说明:或者,您可以在 /etc/hosts 文件中写入后端服务器的 IP 地址和合适的主机名,并在 proxy_pass 指令中提及此主机名。这样做的好处是,在切换服务器时,您只需更改 /etc/hosts 中的条目,而不必更改多个配置文件。

相关内容