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 ?
答案 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后端)可以使用此服务的输出,并使用它来确定服务器是否实际启动。