Alias pour différents contextes avec Apache Tomcat 5.5
-
21-09-2019 - |
Question
J'utilise tomcat 5.5 et je veux faire ce qui suit:
Si deux applications Web sont déployées (laissez-les être foo et bar ) Je veux être en mesure d'y accéder à la fois avec des chemins relatifs et par des alias.
localhost: 8080 / foo -> foo et foo.example.com -> foo
et respectivement
localhost: 8080 / bar -> bar et bar.example.com -> bar
Si j'utilise différents hôtes dans le moteur et gérer les alias -comme la documentation dictates- alors les urls aliasées fonctionnent très bien, mais pas ceux relatifs. Afin de les avoir à la fois fonctionner correctement je besoin d'un hôte supplémentaire « localhost » et déclare les mêmes contextes encore. Voici mon server.xml
<Engine name="Catalina" defaultHost="localhost">
<Host name="foo.example.com">
<Context docBase="webapps/foo" path="" workDir="work/Catalina/foo/_"/>
<Alias>foo.example.com</Alias>
</Host>
<Host name="bar.example.com">
<Context docBase="webapps/bar" path="" workDir="work/Catalina/bar/_"/>
<Alias>bar.example.com</Alias>
</Host>
<Host name="localhost" appBase="webapps" autoDeploy="false" >
<Context path="foo" workDir="work/Catalina/foo/_" />
<Context path="bar" workDir="work/Catalina/bar/_" />
</Host>
</Engine
Bien qu'il fonctionne de cette façon, il semble que tomcat se charge chaque contexte deux fois. Y at-il d'autre moyen d'y parvenir?
La solution
Il charge en effet les applications deux fois parce que vous l'avez configuré de cette façon. Vous auriez besoin d'une instance apache httpd devant tomcat pour faire de la magie de réécriture d'URL.