我特意查找了如何做这样的事情(您可以在 DNS 中为您的服务器设置备用 IP 吗?),答案基本上是不能。如果我说指定 2 个 IP 地址,我能否以某种方式使用 HTTP 响应标头暂时忽略它(比如 5 分钟)并转到另一个 IP 地址?或者也许我可以装死,但我不确定如何使用 nginx 装死。然后我希望在我的盒子注意到另一个盒子关闭后可用,并成为某种只读服务器。
我确信已经实现了类似的东西,我只是想知道如何使用 2 个盒子来实现它。我确信这不是很难?如何在不修改 DNS 的情况下将流量从备份盒重定向到主服务器?
答案1
如何在不修改 DNS 的情况下将流量从备份箱重定向到主服务器?
这是不可能的。
我特意查找了如何做这样的事情(您可以在 DNS 中为您的服务器设置备用 IP 吗?)答案基本上是不能
不幸的是,这个答案是正确的。最好的办法是进行正常的 HTTP 重定向,但必须启动已死的服务器才能发出该重定向。
本质上,你需要了解该过程的工作原理:
- 客户端通过 DNS 查找与
example.com
- 它使用第一个,并将其缓存(DNS 服务器不会每次都以相同的顺序返回 IP,它们使用循环赛)
- 客户端尝试在端口 80 上打开到该 IP 的连接。如果连接失败,就失败了。客户端放弃。
你正在寻找一种方法,在客户端放弃后,他们会收到“通知”,告知他们应该尝试新的 IP。根本没有办法做到这一点:服务器据称已经死机必须以便发布应重定向到其他地方的信息。
DNS 方法的工作方式是将坏服务器从 DNS 池中移除,这样客户端就不会收到它。它们还将缓存时间设置为低,这样当用户点击刷新时,他们可能会获得一个新的 IP。