一个(hw)负载均衡器可以检查HTTP状态码吗?

我们目前正在开发几个网站,使用两台Web前端服务器(使用apache和tomcat / jboss),在它们前面有一个负载平衡器。 由于我是程序员,而不是系统pipe理员,所以我只能猜测一个体面的硬件负载均衡器能够做什么。 我想知道,如果一个硬件负载均衡器可以检查HTTP状态代码,所以如果另一个服务器因为维护(现在发送一个503 HTTP错误代码)而导致stream量只能被redirect到一个服务器。

谢谢!

是的,几乎所有的负载平衡器都会这样做。 大多数负载平衡器也将走得更远,并且如果它停止服务,则将死HTTP服务器停止服务:

  • 只是超时或不响应TCP ​​/ IP
  • 在设置的超时时间内没有响应有效的HTTP,即TCP套接字连接,但没有HTTP,或HTTP发送200 OK,但不回答HTTP OPTIONS等。
  • 如果某个特定的状态页面不包含特定的预设文本string/不符合预设的MD5哈希。 这对于检查与数据库的连接是否启动非常方便(通过编程一个从DB读取一些数据并显示它的简单页面)。

编辑:另外,良好的负载平衡器有一个简单的方法将服务器设置为维护模式,即负载平衡器将停止向该服务器发送新请求,并在服务器停止stream量时在其UI中显示。 然后,您可以在服务器上自由执行所需的维护,然后重新投入使用。

此外,大多数负载平衡器都有一个紧急服务器的概念,即如果所有常规的HTTP服务器都closures了,所有的stream量将被发送到您的局域网上的指定应急服务器,然后可以传递一个静态的“我们维护,以后回“页面。

土狼点做出很好的低端负载平衡器家电恕我直言。 还有许多其他的低端负载平衡器供应商。 梭子鱼就是一个例子。 “低端”在这个背景下并不是消极的,它只是把市场分成两部分:

  • 低端“厂商,他们的顶级产品通常最多收取20000美元左右,而且通过小型经销商直接销售。
  • 像F5,思科,代工等企业供应商可能收取更多的费用,并使用高级品牌的销售模式。

如果OP在内部没有系统pipe理员技能,那么购买低维护的设备就很有意义。 如果你愿意并能够build立一个Unix服务器,那么看看这个post 。 如果你在Microsoft Windows上,那么微软应用程序请求路由版本1或2(testing版)可能是很好的解决scheme(我不太了解它们)。

Apache / tomcat当然可以 – 查看“fail_on_status”的文档。

BigIP负载平衡器可以做到这一点。 但是你不需要得到一个大的硬件LB来获得良好的性能。 看看nginx和清漆。 清漆专门被写为一个caching负载平衡器,是高度可configuration的。 http://varnish.projects.linpro.no/