负载平衡交换机可以实现我想要的功能,除非我无法弄清楚如何使它工作,除非两个Web服务器都在同一个建筑物中.
高可用性集群系统可以满足我的需求,除非我无法弄清楚如何让它工作,除非两个Web服务器都在同一个建筑物中.
“redirect to a static page on another web server when main web server is down”的接受答案似乎支持2个不同城市的Web服务器.但是,在一个盒子上安装一个软件后如何帮助我拔掉盒子?
round-robin DNS和content-delivery networks(CDNs)如何做到这一点?
我想一种方法可以开始:
>我获得了每个物理Web服务器的IP地址.
>我将每个物理Web服务器的IP地址放入“该”网站的单个域名的DNS记录中(多个A记录或AAAA记录或两者).
> …那我该怎么办?
我想另一种方法就是开始
>我使用一些动态DNS提供程序作为我希望用户在Web浏览器中输入的单个域名
>我在每个Web服务器上设置了一个cron作业,定期告诉DNS提供商自己的IP地址(更新A记录或AAAA记录)或自己的域名(更新CNAME记录或DNAME记录).
> …那我该怎么办?
(现在,如果我的用户有一个带有我的联系信息的静态网页,并且每当网络服务器A被拔掉时,脚注上写着“主要的A网络服务器似乎已关闭”,我会很高兴.这已经远远超过了当前的系统只是给出了“服务器未找到”的错误.理想情况下,我希望A和B完全同步并且看起来完全相同 – 但这是另一个问题:equivalent to CDN but for dynamical content?).
解决方法
例如,假设您有两个Web服务器,一个是西部(10.10.10.1/24),另一个是东部(10.20.20.1/24).假设您的网站主机名是www.connect.com.
GSLB可以配置为您的DNS或CNAME.无论哪种方式,用户在www.connect.com中键入,dns查询都将指向GSLB解决方案,并根据参数响应10.10.10.1或10.20.20.1. GSLB通常设置较低的TTL,因此客户端主机/浏览器会在尽可能短的时间内缓存响应.有不同的方法来解决持久性问题,但这超出了本方案的范围.
让我们说东部(10.20.20.1)网络服务器出现问题. GSLB通常执行运行状况检查以检查后端节点的运行状况. GSLB通知东方已关闭,所有后续的www.connect.com dns记录将解析为10.10.10.1.
如果您有本地服务器负载平衡解决方案(SLB),那么您可以将其设置为www.connect.com是具有两个后端节点(10.10.10.1/24和更高版本的VIP / VS(例如192.168.1.1/24)). 10.20.20.1/24).从技术上讲,节点可以位于不同的网段中,只要本地SLB可以到达其他服务器即可.如果后端节点出现故障,SLB解决方案可能足够智能,可以将用户重定向到可用的服务器.如果您使用的是F5 LTM,那么您可以轻松地为此类事件创建iRule. Citrix NetScaler和其他SLB解决方案也应具有类似功能.
RR DNS在这种情况下不起作用. RR DNS没有内置智能.完成DNS使用案例的唯一方法是通过GSLB(或类似)解决方案使用某种“智能”DNS.
CDN通常实施GSLB / SLB解决方案以确保其客户的HA.