Transférer les requêtes apache (port 80) vers Tomcat (port 8080)?

Je souhaite exécuter une application Tomcat via une URL régulière du site, comme www.xyz.com . J'aimerais que la racine de ce domaine soit le directory de base de l'application Web, de sorte que chaque request à www.xyz.com/a/b/c devient www.abc.com:8080/myApp/a/b/c . Idéalement, je pourrais le faire de manière transparente et uniquement pour certaines webapps.

www.abc.com:8080 devrait toujours répondre aux requests.

Que dois-je faire pour que cela se produise?

 ProxyPass / http://www.abc.com:8080/myApp/ ProxyPassReverse / http://www.abc.com:8080/myApp/ 

En savoir plus sur mod_proxy

Une méthode plus simple pour ce faire est d'append simplement une input Virtual Host dans votre file Conf Apache. Généralement situé dans / etc / httpd / conf, ajoutez quelque chose comme ceci à la fin de la section Virtual Host:

 <VirtualHost XXXX:80> ServerName tomcatpage.yourdomain.com ServerAlias tomcatpage.yourdomain.com Redirect permanent / http://tomcatpage.yourdomain.com:8080/ </VirtualHost> 

Redémarrez votre service Apache et vous avez terminé.

Vous pouvez utiliser mod_rewrite dans Apache pour le faire. Chargez mod_rewrite dans votre Apache et dans votre http://www.xyz.com vhost, ajoutez la règle suivante:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1

Cela devrait faire la magie.

Plus d'informations sur mod_rewrite ici .

EDIT : Pour garder le nom du site dans les browsers, utilisez mod_proxy en ajoutant un [P] à la fin du RewriteRule:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]

Cela obligera Apache à agir comme proxy pour cette URL au lieu de simplement réécrire l'URL.