簡體   English   中英

Apache ProxyPass具有相同URI的2個不同的tomcat服務器

[英]Apache ProxyPass to 2 different tomcat servers with same URI

我有2台服務器,上面有apache http服務器(2.4.9)。 我有2台運行tomcat 7.0.39的服務器。 最終,我需要在2之間進行負載平衡,但現在只是在嘗試使此ProxyPass配置起作用。

我在2個Apache服務器example.com上有一個網址。 它們負載均衡。 負載平衡到位,沒有問題。

我有2個應用程序,每個tomcat服務器上有1個。 每個tomcat服務器都有兩個正在運行的tomcat實例,每個實例都在不同的端口上。 他們正在使用完全相同的uri運行非常相似的應用程序。

我需要重定向:

從example.com/site1到example.com/app(對於app1)

從example.com/site2到example.com/app(對於app2)

我可以很容易地將其重定向到僅一個應用程序:

ProxyPass / app / AppSrv:8080 / app /

ProxyPassReverse / app / http://example.com/app/

我可以進入頁面,登錄,沒問題。 僅適用於單一應用程序。

當我為兩個應用程序都設置了配置時,這樣配置后,我也可以進入兩個應用程序的登錄頁面:

ProxyPass / site1 / AppSrv:8080 / app

ProxyPassReserve / app /

ProxyPass / site2 / AppSrv:8081 / app

ProxyPassReverse / app /

這兩個URL都帶有tomcat應用程序登錄頁面。 但是此后都無法工作-他們失敗了。 uri讀取的是“ site1”(或“ site2”),而不是“ app”。 我不能登入。

該應用程序需要uri'/ app /'作為基本uri才能運行。

應用程序在不同的端口上偵聽,但是具有相同的uri。 如何將uri保留在url中,但是如何更改它以便應用程序響應?

最終,我必須權衡這一點,但是我之前已經做到了。 這是我很難過的部分。

好的,我終於解決了這個問題。 我不得不修改標題。

ProxyPass /site1/ balancer://example.com/app/ 

ProxyPass /site2/ balancer://example.com/app/ 

<Location /site1>
ProxyPassReverse /app
ProxyPassReverseCookiePath /app /site1
Header edit Location ^(https?://)?example.com/app/ /site1/
</Location>

<Location /site2>
ProxyPassReverse /app
ProxyPassReverseCookiePath /app /site2
Header edit Location ^(https?://)?example.com/app/ /site2/
</Location>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM