HAProxy能够负载平衡MySQL/TOMCAT/Cassandra/LDAP/WEB etc....perfectly。主要问题是如何确保后端MySQL/TOMCAT/Cassandra等服务器转发启动和运行的请求(我的意思不仅仅是建立一个连接到端口3306的mysql,8080的tomcat,389的LDAP等等,我指的是更多的“完全”,它对后端服务器执行一点操作)。
我的用例:
=============
在HAproxy背后有很多后端猫在工作,所有的猫都是通过HAproxy服务的,突然其中一只猫消失了OutOfMemory。显然,对于Haproxy来说,tomcat服务器已经启动,但是请求被路由到tomcat失败,因为tomcat运行OOM。
是否可以让Haproxy使用一个小型shell脚本来检查后端服务器的状态?
这个脚本主要做的是对tomcat执行一个基本操作,然后如果操作成功返回http状态200,如果有任何错误返回http状态500 (即tomcat不可用)。
还有其他方法来配置HAproxy来检查状态“完成”,而不仅仅是在服务器-ip:端口上检查连接吗?
发布于 2013-10-25 21:35:17
我使用的解决方案可在以下链接获得:http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/
这里粘贴起来有点太长了,但是总而言之,有一个小的shell脚本,它在本地主机上对MySQL服务器执行一个简单的查询,并分别在成功/失败时输出一个HTTP200号或500个响应。运行这个程序的方法有很多种,但是为了简单起见,链接的解决方案只是将shell脚本直接注册为xinetd服务。显然,这是一个理想的端口,应该只对HAProxy服务器开放,而且绝对不对互联网开放!
HAProxy内置于HTTP监视中,用于监视web后端,它可以使用此服务的输出并使用它来确定服务器是否实际运行。
https://stackoverflow.com/questions/17586369
复制相似问题