2009-03-19 4 views
3

Ich habe zur Zeit einen Tomcat Servlet 1 unter dem ROOT ausgeführt wird:Redirect URL-Pfad zum Tomcat Servlet mit Apache weiterleiten/Mod_proxy

api1.myhost.com:8080/

ich Mod_proxy bin mit und einfach Weiterleiten aller Anfragen von api1.myhost.com an diese Instanz. Dies funktioniert ab heute.

ich jetzt installiert haben ein zweites Servlet-2, die unter der gleichen Instanz von Tomcat läuft (die gleiche IP-Adresse):

www.myhost.com:8080/servlet2

Ich möchte alle Anforderungen an einen neuen URL api2 zu diesem zweiten Servlet zu gehen, so dass:

api2 .myhost.com

nun zur zweiten Servlet-Instanz weitergeleitet wird.

Ich habe einen A-Eintrag erstellt, so dass api2.myhost.com auf meine Server-IP verweist. Wie machst du api2.myhost.com auf www.myhost.com:8080/servlet2 weiter?

Antwort

3

Sie müssen zwei VirtualHost mit auf die erste Webapp, die andere auf die zweite Webapp.

<VirtualHost *:80> 
    ServerName api1.myhost.com 
    ProxyPass/http://api1.myhost.com:8080/ 
    ProxyPassReverse/http://api1.myhost.com:8080/ 
</VirtualHost> 

<VirtualHost *:80> 
     ServerName api2.myhost.com 
     ProxyPass/http://www.myhost.com:8080/servlet2 
     ProxyPassReverse/http://www.myhost.com:8080/servlet2 
</VirtualHost> 

Beachten Sie, dass, da der Weg auf tomcat wird anders sein als auf Apache, müssen Sie relative URLs in Ihrer Anwendung verwenden.

+0

genial dies funktioniert mit einer kleinen Korrektur. Ich musste auch die folgende Zeile haben: NameVirtualHost *: 80 – Ish

+0

In welche Datei fügen wir diese Virtualhost-Datensätze hinzu? – frosty

+0

Jede Datei, die in der Apache-Conf-Hauptdatei enthalten ist. Es gibt oft eine separate Datei für jeden virtuellen Host. –