2008-10-13 47 views
3

我們使用專用加速器在http://hansard.millbanksystems.com上運行Rails站點。我們目前使用mod-proxy-balancer進行Apache設置,代理運行應用程序的四個mongrels。代理選擇:mod_proxy_balancer,nginx +代理平衡器,haproxy?

一些請求相當慢,爲了防止其他請求在其後排隊,我們正在考慮代理的選項,如果有請求,它會將請求指向空閒雜種。

選項似乎包括:

  • http://labs.reevoo.com/

  • 編譯nginx的與公平代理平衡器用於Solaris

  • 編譯HAProxy的開放的Solaris(儘管如所描述的重新編譯爲Apache mod_proxy_balancer的這可能不適用於SMF)

這些合理的選擇?我們錯過了什麼明顯的?我們非常感謝您的建議。

回答

4

Apache是​​一個奇怪的野獸用於你的平衡。這當然有能力,但它就像使用坦克來購物。

Haproxy/Nginx更專門爲這項工作量身打造。您應該獲得更高的吞吐量並同時使用更少的資源。

2

如果您想避開Apache,可以使用其他Web服務器(如nginx或lighttpd)以及某種類型的負載平衡器(如Pound或基於硬件的解決方案)來部署Mongrel羣集。

磅(http://www.apsis.ch/pound/)適合我!

0

我已經成功地使用了mod_proxy_balancer + mongrel_cluster(小流量網站)。

3

HAProxy提供了比mod_proxy_balancer,nginx以及其他幾乎任何其他軟件都更加豐富的負載均衡功能。

特別是針對您的情況,日誌輸出是高度可定製的,因此應該更容易確定何時,何地以及爲什麼會發生緩慢的請求。

此外,還有幾種不同的負載分配算法可用,並具有很好的自動故障轉移功能。

37信號在Rails和HAProxy上有帖子here(最初見過here)。

2

haproxy和SMF的唯一問題是,除非您編寫包裝腳本,否則不能使用它的軟重啓功能來實施「刷新」操作。我寫了一些更詳細的內容here

但是,IME haproxy在solaris上絕對是防彈的,我會推薦它。我們通過solaris 10上的一個haproxy實例每天運送幾百GB到幾TB的物品,到目前爲止(觸摸木材)在2年以上的運行中我們沒有任何問題。

1

Pound是我過去成功使用的HTTP負載均衡器。它包括一個動態的縮放功能,可與您的具體問題有所幫助:

DynScale(0 | 1):啓用或禁用 動態縮放碼(默認: 0)。如果被啓用的磅會週期性地 嘗試修改後端優先級 ,以便平衡來自各個後端的響應 次。對於特定的 服務,此 值可以被覆蓋。

磅很小,記錄良好,並且易於配置。