(硬件)负载均衡器可以检查 HTTP 状态代码吗?

Ben*_*Ben 3 hardware load-balancing

我们目前正在使用 2 个 Web 前端服务器(使用 apache 和 tomcat/jboss)开发几个网站,它们前面有一个负载均衡器。由于我是一名程序员,而不是系统管理员,我只能猜测一个体面的硬件负载均衡器的能力。我想知道硬件负载均衡器是否可以检查 HTTP 状态代码,因此如果另一台服务器因维护而停机(现在发送 503 HTTP 错误代码),流量将仅重定向到一台服务器。

谢谢!

Jes*_*r M 7

是的,几乎所有负载均衡器都会这样做。大多数负载平衡器也会更进一步,如果出现以下情况,就会使死掉的 HTTP 服务器停止服务:

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

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

此外,大多数负载均衡器都有一个紧急服务器的概念,即如果所有常规 HTTP 服务器都关闭了,所有流量将被发送到您局域网上指定的紧急服务器,然后它可以提供静态的“我们正在停机维护,请检查稍后返回”页面。

恕我直言,Coyote Point制造了不错的低端负载平衡器设备。还有许多其他供应商提供低端负载均衡器;梭子鱼就是一个例子。在这种情况下,“低端”并不是负面的,只是将市场分为两部分:

  • “低端”供应商,他们的顶级产品通常最多收取 20000 美元左右,并直接和通过小型经销商销售。
  • “企业供应商”,如 F5、Cisco、Foundry 等,可能收费更高,并使用优质品牌销售模式。

如果 OP 内部没有系统管理员技能,那么购买低维护设备就很有意义。如果您愿意并有能力设置 Unix 服务器,请查看这篇文章。如果您使用的是 Microsoft Windows,那么 Microsoft应用程序请求路由版本 1 或 2(测试版)可能是不错的解决方案(我不太了解它们)。