簡體   English   中英

Apache - Tomcat ProxyPass VirtualHost - 上下文路徑

[英]Apache - Tomcat ProxyPass VirtualHost - Context Path

我在為tomcat中具有兩個不同上下文路徑的兩個應用程序配置apache tomcat ProxyPass指令時遇到問題。 tomcat在apache后面運行,我使用apache代理路徑請求tomcat。 在apache中,我想通過主機名而不是上下文路徑訪問這兩個應用程序。

場景:

tomcat的

https://domain:8443/app1
https://domain:8443/app2

在tomcat中,應用程序具有上下文路徑app1和app2

在apache中我想啟用兩個應用程序如下:

https://app1.host/
https://app2.host/

在apache中,我為每個域創建了一個配置:

ProxyPass /  https://localhost:8443/app1
ProxyPassReverse / https://localhost:/8443/app1

奇怪的是app1只能通過apache使用上下文路徑:

https://app1.host/app1

是否可以使用apache ProxyPass模塊實現這樣的設置?

謝謝你的幫助。

您應該能夠通過使用虛擬主機來實現所需的結果。 另外,通過AJP協議而不是HTTPS將請求傳遞給tomcat是個好主意。 嘗試將其添加到Apache配置中

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName app1.host
    ProxyPass / ajp://localhost:8009/app1/
</VirtualHost>

<VirtualHost *:443>
    ServerName app2.host
    ProxyPass / ajp://localhost:8009/app2/
</VirtualHost>

如果您尚未更改Tomcat的默認服務器設置,則應該可以正常工作。 否則,請確保指定在Tomcat的conf / server.xml文件中配置的AJP端口。 應該有一個類似於這樣的行:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

確保在Apache配置中加載了mod_proxy和mod_proxy_ajp模塊,這可能因Apache安裝而異。 同時刪除任何先前配置的“ProxyPass / ...”行,因為它們會干擾新配置。 希望這對你有用。

你可以試試

ProxyPass /  https://localhost:8443/app1/
ProxyPassReverse / https://localhost:8443/app1/

與決賽/

暫無
暫無

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

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