2009-10-10 61 views
0

後面的apache服務器我正在編寫一個小型web服務(如內容服務器)來搜索和提供內容。基本上它有2個部分 - 一個動態部分執行客戶端認證並提供內容搜索功能。第二部分涉及向經過身份驗證的客戶端提供靜態內容。使用Tomcat(在apache-tomcat集羣中)作爲反向代理服務器到

在性能和可伸縮性方面,上述服務的良好體系結構是什麼?

  1. 只使用應用程序服務器(tomcat)來做到這一點?
  2. 但是後來我聽說apache在提供靜態內容方面效果更好,它具有壓縮內容等簡單的可配置選項。那麼如何使用Tomcat作爲反向代理(使用j2ep,noodle ..)到後面的apache web服務器。 Tomcat可以進行身份​​驗證和搜索,而後面的apache服務器可以提供內容。
  3. 但Tomcat是單點聯繫人,可以成爲性能瓶頸。那麼爲什麼不再次使用apache tomcat集羣來平衡整個設置的負載呢?

基本上我正在尋找一個apache-tomcat集羣,其中每個tomcat充當反向代理到後面的一組apache服務器。這是可能的嗎?有沒有人做過這個?我沒有搜索這個,但無法找到任何指針。如果可能的話,這種架構是否存在潛在的缺點?

如果這是一個糟糕的選擇,那麼該Web服務的正確方法是什麼?

回答

0

首先我會使用tomcat來處理靜態和非靜態的內容。 tomcat(來自版本5 AFAIK)在靜態內容中也有很好的表現。 但是,如果這不適合你,那麼我建議你將Apache httpd作爲後端服務器和後面的tomcat。 我已經使用mod_jk和JKMount指令可以告訴Apache什麼是轉發給tomcat的調用。因此,不匹配JKMount指令的內容由Apache httpd本身處理。所以你的靜態內容可以由httpd提供服務,而非靜態請求則指向tomcat。根據負載,您可以擁有多個tomcat。

但是您需要小心如何對靜態內容請求進行身份驗證。

爲了能夠擴展,在實際內容和其訪問之間引入一個間接的級別。就像處理可以從任何地方獲得的內容一樣。所以你可以在地理位置分散的許多位置複製靜態內容(或使用CDN)

希望這會有所幫助。

相關問題