2016-11-07 68 views
0

apache模塊最適合構建以下羣集: 2x紅帽子每個都有一個tomcat apache。 沒有可擴展性需求。 高可用性需求。 會話複製需求。前面的tomcat集羣apache - 如何加載平衡?

  DNS 
      | 
    Load Balancer 
    /   \ 
    APACHE1  APACHE2 
    TOMCAT1  TOMCAT2 

問題是關於什麼模塊用於負載平衡與Apache?

mod_proxy mod_cluster other?

+0

這與Puppet有什麼關係? –

+0

抱歉 - 沒有 - 你是對的。 –

回答

1

如果我正確理解mod_cluster,它必須與JBoss或修改後的Tomcat結合使用。所以如果你使用普通的Tomcat(或者TomEE),那麼我認爲mod_cluster已經不在了。

最簡單的開箱即用選項是將mod_proxy與AJP或HTTP後端一起使用。如果您可以輕鬆地構建其他模塊,則可以從Tomcat人員那裏獲得mod_jk,並且提供了一些優於mod_proxy的優勢,儘管mod_proxy幾乎實現了功能奇偶性。

您的圖表顯示負載平衡器將在兩個直接耦合到單個Tomcat實例的httpd實例之間進行選擇。在這種情況下,httpd根本沒有執行任何負載均衡(lb正在完成這項工作),所以httpd在該配置中可能是多餘的。

如果您希望將兩個httpds與兩個Tomcat交叉鏈接,那就是當您開始必須使用mod_proxy的「平衡器」配置配置類似羣集的行爲時。這將是這個樣子:

<Proxy balancer://appA> 
    BalancerMember http://tomcatA:8080/appA 
    BalancerMember http://tomcatB:8380/appA 
</Proxy> 

ProxyPass /appA balancer://appA 
ProxyPassReverse /appA balancer://appA 

tons of options for mod_proxy,你應該瞭解和應用,以滿足您的配置。您可以配置諸如粘性會話,熱備份(在您的示例圖中不存在,但如果您確實需要HA的話,這是個好主意)以及非對稱負載平衡。

+0

非常感謝您的詳細解釋。前面的Apache還沒有決定,並且每個服務器會有幾個tomcat實例,我希望它們能夠在兩個節點上運行以獲得高可用性,這裏的要點是如何配置tomcat,將會決定前面的內容稍後的。再次感謝 –

+0

啊,好吧。使用'AJP' IMO有一些小優點,但是你會對'mod_proxy'('_ajp'或'_http')或'mod_jk'滿意。 'mod_proxy'具有直接使用httpd而不是附加模塊的優點。 Tomcat配置在很大程度上是代理不可知的(當然,除了選擇「HTTP」與「AJP」協議)。 (您的原始問題具體詢問要使用哪個httpd模塊,而不是如何配置Tomcat。) –

+0

@ChristopherSchultz,mod_cluster可與任何Tomcat 6+一起使用。一個只需要[將mod_cluster jar放入lib目錄](http://modcluster.io/documentation/#installing-in-tomcat-1)和[在server.xml中添加mod_cluster Listener](http:// modcluster。 IO /文檔/#生命週期偵聽)。最大的好處是Tomcats會自動向httpd報告,不需要在httpd端配置任何工作主機名,端口或應用程序上下文。它是完全動態的。 –