让HAProxy检查后端服务器状态?

时间:2013-07-11 06:20:33

标签: linux high-availability haproxy

HAProxy能够完美地对MySQL / TOMCAT / Cassandra / LDAP / WEB服务器等进行负载均衡。 主要问题是如何确保后端MySQL / TOMCAT / Cassandra等服务器转发请求已启动并运行 (我的意思不仅仅是建立一个连接到端口3306 for mysql,8080连接到tomcat,389连接到LDAP等。 我的意思是更多“ COMPLETE ”,它对后端服务器执行一些操作。)

我的使用案例:
=============

HAproxy后面有很多后端tomcat工作,所有tomcat都通过HAproxy提供服务,突然其中一个tomcat消失OutOfMemory。 显然对于Haproxy,tomcat服务器是Up,但是当tomcat运行OOM时,请求路由到该tomcat失败。

是否可以使用小型shell脚本Haproxy检查后端服务器的状态?

这个脚本基本上做的是对tomcat执行基本操作,然后返回http状态200 如果操作成功或http状态500,如果有任何错误(即tomcat不可用)。

是否还有其他方法可以配置HAproxy来检查状态“COMPLETE”,而不仅仅是连接检查 server-ip:port

1 个答案:

答案 0 :(得分:0)

我正在使用的解决方案可从以下链接获得:http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/

这里粘贴内联有点太长了,但总而言之,有一个小的shell脚本,它对localhost上的MySQL服务器执行一个简单的查询,并分别在成功/失败时输出HTTP 200或500响应。有多种方法可以运行它,但为简单起见,链接的解决方案只是将shell脚本直接注册为xinetd服务。显然这是一个理想情况下应该只对HAProxy服务器开放的端口,并且绝对不会对Internet开放!

HAProxy内置的HTTP监控(用于监控Web后端)可以使用此服务的输出,并使用它来确定服务器是否实际启动。