nginx跨机房如何保证高可用?

高可用方案图1

上图是架构师之路提供的一个系统高可用方案,正常使用keepalived配置的virtual IP都是内网IP吧?
但如果此时两个nginx和keepalived是部署在不同机房呢,能否再使用keepalived实现故障自动切换呢?或者大神们是否有其它跨机房高可用方案么?
问题补充:
目前平台有通过CDN加速,是可以配置多个源站进行回源,但据说回源探测失败3次才会走其它正常源站,至少要6min,也就是可能宕机6min,所以才考虑其它方式来故障切换。异地机房有做内网穿透。
问题场景:
平台部署在不同机房,某个机房宕机,用户能无感的自动切换到正常机房访问。
互相探讨下

阅读 4.9k
1 个回答

很少听说会跨机房使用 keepalived,keepalived受网络影响比较大,跨机房分分钟给你脑裂

keepalived往往用于同一个机房内,为了防止因某台服务器失活造成整个系统不可用的情况

跨机房做高可用是为了防止因整个物理机房失活操作业务不可用的情况。当要做跨机房高可用,难点往往就不是高可用切换了,而是数据同步问题,可以搜索关键词「异地多活设计」。

如果单纯就是想问,两个 Nginx 部署在不同的机房,且 Nginx 和后端不在同一个机房,Nginx 怎么做高可用。这种场景和动态 CDN 很像,多个 CDN 机房入口,然后回源到同一个源站机房。这种使用方式做高可用,一般是加上第三方监控,如果监控到入口 A 没有反应的,就把入口 A 的流量全部改到 B,修改可以是 DNS 解析的方式。

所以,如果说得不太对,补充你的使用场景呗。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题