我想更改网站的服务器,通常的做法是这样的:
- 检查指向当前 IP 地址的域的 TTL。
- 将当前域的 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 中的条目,而不必更改多个配置文件。