我们目前正在使用 2 个 Web 前端服务器(使用 apache 和 tomcat/jboss)开发几个网站,它们前面有一个负载均衡器。由于我是一名程序员,而不是系统管理员,我只能猜测一个像样的硬件负载均衡器能做什么。我想知道硬件负载平衡器是否可以检查 HTTP 状态代码,因此如果另一台服务器停机进行维护(现在发送 503 HTTP 错误代码),流量将仅重定向到一台服务器。
谢谢!
本
我们目前正在使用 2 个 Web 前端服务器(使用 apache 和 tomcat/jboss)开发几个网站,它们前面有一个负载均衡器。由于我是一名程序员,而不是系统管理员,我只能猜测一个像样的硬件负载均衡器能做什么。我想知道硬件负载平衡器是否可以检查 HTTP 状态代码,因此如果另一台服务器停机进行维护(现在发送 503 HTTP 错误代码),流量将仅重定向到一台服务器。
谢谢!
本
是的,几乎所有负载均衡器都会这样做。大多数负载均衡器也会走得更远,如果出现以下情况,会使死掉的 HTTP 服务器停止服务:
编辑:另外,好的负载均衡器有一种简单的方法将服务器设置为维护模式,即负载均衡器将停止向该服务器发送新请求,并在服务器停止流量时显示在其 UI 中。然后,您可以自由地在服务器上执行所需的维护,然后再将其重新投入使用。
此外,大多数负载均衡器都有一个紧急服务器的概念,即如果所有常规 HTTP 服务器都关闭了,所有流量都将发送到您 LAN 上的指定紧急服务器,然后该服务器可以提供静态的“我们正在停机进行维护,请检查稍后返回”页面。
Coyote Point制造了不错的低端负载平衡器设备恕我直言。还有许多其他低端负载均衡器供应商;梭子鱼就是一个例子。在这种情况下,“低端”并不是负面的,只是市场一分为二:
如果 OP 在内部没有系统管理员技能,那么购买低维护设备就很有意义。如果您愿意并且有能力设置 Unix 服务器,请查看这篇文章。如果您使用的是 Microsoft Windows,那么 Microsoft Application Request Routing版本 1 或 2(测试版)可能是很好的解决方案(我不太了解它们)。
Apache/tomcat 当然可以——查看“fail_on_status”的文档。
BigIP 负载均衡器可以做到这一点。但是你不需要一个大的硬件LB来获得良好的性能。检查 nginx 和清漆。Varnish 专门编写为缓存负载均衡器,并且具有高度可配置性。http://varnish.projects.linpro.no/