我们目前正在使用 2 个 Web 前端服务器(使用 apache 和 tomcat/jboss)开发多个网站,并在它们前面安装一个负载均衡器。由于我是一名程序员,而不是系统管理员,所以我只能猜测一个像样的硬件负载均衡器能够做什么。我想知道硬件负载均衡器是否可以检查 HTTP 状态代码,这样如果另一台服务器因维护而停机(现在发出 503 HTTP 错误代码),流量就会被重定向到仅一台服务器。
谢谢!
本
答案1
是的,几乎所有的负载均衡器都会这样做。大多数负载均衡器还会采取更进一步的措施,在出现以下情况时,让已宕机的 HTTP 服务器停止服务:
- 只是超时或不响应 TCP/IP
- 在设置的超时时间内没有以有效的 HTTP 做出响应,即 TCP 套接字已连接但没有 HTTP,或者 HTTP 发送 200 OK 但没有应答 HTTP OPTIONS 等。
- 如果特定状态页面不包含特定的预设文本字符串/与预设的 MD5 哈希不匹配。这对于检查与数据库的连接是否正常非常方便(通过编写一个简单的页面,从数据库读取一些数据并显示出来)。
编辑:此外,好的负载平衡器可以很容易地将服务器设置为维护模式,即负载平衡器将停止向该服务器发送新请求,并在服务器停止流量时在其 UI 中显示。然后,您可以自由地对服务器执行所需的维护,然后再将其重新投入使用。
此外,大多数负载平衡器都有紧急服务器的概念,即,如果所有常规 HTTP 服务器都发生故障,则所有流量将被发送到 LAN 上指定的紧急服务器,然后该服务器可以提供静态的“我们因维护而停机,请稍后再查看”页面。
土狼角在我看来,制造了不错的低端负载平衡器设备。还有许多其他低端负载平衡器供应商;梭鱼就是一个例子。在这种情况下,“低端”并不是负面的,只是市场被分成了两部分:
- “低端”供应商,其顶级产品的价格通常最多为 20,000 美元左右,既通过直接销售,也通过小型经销商销售。
- F5、Cisco、Foundry 等“企业供应商”可能会收取更高的费用,并使用高端品牌销售模式。
如果 OP 内部没有系统管理员技能,那么购买低维护设备非常有意义。如果您愿意并且有能力设置 Unix 服务器,那么可以购买看看这个帖子。如果你使用的是 Microsoft Windows,那么 Microsoft应用程序请求路由版本 1 或 2(测试版)可能是很好的解决方案(我不太了解它们)。
答案2
Apache/tomcat 当然可以 - 请查看“fail_on_status”的文档。
答案3
BigIP 负载均衡器可以做到这一点。但您不需要获得大型硬件负载均衡器即可获得良好的性能。查看 nginx 和 varnish。Varnish 专门作为缓存负载均衡器编写,并且具有高度可配置性。http://varnish.projects.linpro.no/