3

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

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

有很多后端tomcat在后面工作HAproxy,所有的tomcat都在服务通过HAproxy,突然有一个tomcat不见了OutOfMemory。显然Haproxy,该 tomcat 服务器为 Up ,但请求路由到该 tomcat 失败,因为 tomcat 运行 OOM。

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

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

有没有其他方法可以配置HAproxy来检查状态“COMPLETE”,而不仅仅是server-ip 上的连接检查:端口

4

1 回答 1

0

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

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

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

于 2013-10-25T21:35:17.403 回答