2013-07-11 127 views
3

HAProxy能夠完美地平衡MySQL/TOMCAT/Cassandra/LDAP/WEB服務器等。 的主要問題是如何確保後端的MySQL/TOMCAT /卡桑德拉等服務器將請求轉發到運行起來 (我指的不只是建立到3306端口的MySQL,用於連接8080爲Tomcat,389 LDAP等 我的意思是更多的「COMPLETE」,這對後端服務器執行一點操作)。HAProxy檢查後端服務器狀態?

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

有許多後端tomcat的背後HAproxy工作,所有Tomcat是通過服務和HAproxy突然一個tomcat不見了OutOfMemory。 顯然對於Haproxy,該tomcat服務器已啓動,但請求路由到該tomcat,因爲運行OOM的tomcat失敗。

是否有可能使Haproxy檢查使用小的shell腳本後端服務器的狀態?

該腳本基本上做的是對tomcat執行基本操作,如果操作成功則返回http狀態200 ;如果有錯誤(即,tomcat不可用),則返回http狀態500。

是否有任何其他方式配置HAproxy來檢查狀態「完成」,而不是隻是連接檢查服務器IP:端口

回答

0

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

這是一個有點太長,內聯粘貼在這裏,但總的來說,有這是執行對MySQL服務器的簡單查詢一個小的shell腳本在本地主機上分別輸出HTTP 200或500響應成功/失敗。有多種方式可以運行,但爲了簡單起見,鏈接解決方案只是將shell腳本直接註冊爲xinetd服務。顯然,這是一個理想情況下應該只對HAProxy服務器開放的端口,並且絕對不對互聯網開放!

HAProxy的內置的HTTP監控,其意在監視Web後端,可以消耗該服務的輸出,並用它來確定服務器是否是實際的。