nginxredirect/代理,一个域(url)与两个IP的

我们要为其中一个Java应用程序设置故障转移机制,应用程序在一台服务器上有3个实例,每个实例必须通过不同的URL访问,这些URL已经注册,并可以通过dns访问。 在辅助服务器上,我们做复制(重要的部分是,实例可以启动,只能在一台物理机上运行),因此我们build立了辅助服务器,如果主要出现故障,我们想为一个域注册多个IP,但由于应用程序旨在只有一个IP注册到实例url。 多个IP设置的另一个问题是dns的循环性质。 是否有可能为一个域注册两个IP,并通过nginx或HAproxy将其代理指向只有主服务器? 还是其他一些想法? 我的想法是,如果主要出现故障,请打开辅助服务器上的应用程序,并尽可能在nginx上更改configuration,以避免dns注册和传播时间?

我要做的是接受域名实际名称上的传入stream量,并自己手动执行路由/故障转移。

example.com> nginx服务器> server1。 (如果失败)> server2。

  http {

    上游java-app {
        服务器$主要服务器;
        服务器$辅助服务器备份;
     }

    服务器{
        位置 / {
             proxy_pass http:// java-app;
             proxy_set_header主机“example.com”;
             proxy_next_upstream错误http_502;
         }
     }
 }

通过使用这种方法,您的后端服务器不需要担心DNS。 只有Nginx会有指向它的DNSlogging。 您的后端服务器将只需要担心处理传入的stream量,如果primary-server死亡…次要将接pipe!

通过在那里添加主机头,您的后端服务器仍然可以在代码中的“主机”头上匹配。 🙂