2012-03-13 71 views
0

有一個用例我到目前爲止無法使用Apache Jakarta(Tomcat)連接器負載平衡功能解決。Apache Jakarta(Tomcat)連接器將流量轉發到特定的Tomcat

我有一個IIS站點有一個Apache Tomcat連接器連接到它。我需要根據請求的URI將流量「轉發」到不同的Tomcat。當只有具有特定上下文的應用程序時(例如/ app1,/ app2等),執行操作非常簡單。我的問題是我有一個應用程序(在一個Tomcat中)在/(根)和另一個應用程序(在另一個Tomcat中)在/ app1。

我曾嘗試以下配置中uriworkermap.properties:

/*=loadBalancer1 
/app1/*=loadBalancer2 

但這不起作用,因爲「loadBalancer1」通吃的流量。 「loadBalancer2」被忽略,這是有道理的,因爲/ app1/*匹配/ *(正則表達式明智)。

我也嘗試添加一個排除像這樣:

/*=loadBalancer1 
!/app1/*=loadBalancer1 
/app1/*=loadBalancer2 

但是,這也不行,因爲「loadBalancer1」仍然採取所有的交通,只是忽略了「/ APP1/*」 URI模式。 「loadBalancer2」再次被忽略。

任何建議,請記住,我不能有2個IIS站點,也不能將位於/(ROOT)的應用程序移動到Tomcat中的不同上下文路徑中?

謝謝

編輯: 而是隻用一個的Apache Tomcat連接器,我用1個連接器的每個Tomcat的在同一個IIS站點。

uriworkermap.properties#1:爲Tomcat與應用在/(ROOT)

/*=wlb 
!/app1/*=wlb 

uriworkermap.proerties#2:爲Tomcat與應用在/ APP1

/app1/*=wlb 

連接器#1將忽略URI「/ app1/*」上的流量,但連接器#2會捕獲它(反之亦然)。

現在我可以爲我的應用程序設置不同的VM選項和內存分配!

我願意接受意見或更好的解決方案..

回答

0

當你扭轉它這樣是否行得通?

 
/app1/*=loadBalancer2 
/*=loadBalancer1 
+0

不,不起作用。我嘗試過這個。似乎正則表達式(如果這是他們使用的)優先於配置文件中元素的排序。也就是說,一位同事可能找到了解決方案。我會盡快發佈。 – 1lln3ss 2012-03-13 21:10:49