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

Linux 让HAProxy检查后端服务器状态?,linux,high-availability,haproxy,Linux,High Availability,Haproxy,HAProxy能够完美地实现MySQL/TOMCAT/Cassandra/LDAP/WEB服务器等的负载平衡。 主要问题是如何确保转发请求的后端MySQL/TOMCAT/Cassandra等服务器已启动并运行 (我的意思不仅仅是为mysql建立到端口3306的连接,为tomcat建立到端口8080的连接,为LDAP建立到端口389的连接等等。 我指的是更“完整的”,对后端服务器执行一些操作) 我的用例: ================ 有许多后端tomcat在HAproxy后面工作,所有tom

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

我的用例:
================

有许多后端tomcat在
HAproxy
后面工作,所有tomcat都通过
HAproxy
提供服务,突然一个tomcat从内存中消失了。 显然,对于Haproxy,tomcat服务器已启动,但路由到该tomcat的请求失败,因为tomcat正在运行OOM

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

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


是否有其他方法可以配置
HAproxy
以检查状态“完成”,而不仅仅是在服务器ip:port上进行连接检查?

我使用的解决方案可通过以下链接获得:

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

HAProxy的内置HTTP监控用于监控web后端,可以使用此服务的输出并使用它来确定服务器是否实际运行