[英]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.