2010-01-19 5 views
1

J'utilise tomcat 5.5 et je veux faire ce qui suit:Alias ​​pour différents contextes avec Apache Tomcat 5.5

Si deux applications Web sont déployées (laissez-les être foo et bar) Je veux être capable 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.exemple.com -> bar

Si j'utilise des hôtes différents dans le moteur et que vous fournissez des alias, comme l'exige la documentation, les URL à alias fonctionnent correctement, mais pas les adresses relatives. Afin de les faire fonctionner tous les deux correctement j'ai besoin d'un hôte supplémentaire "localhost" et déclare les mêmes contextes encore. Voici mon serveur.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 que cela fonctionne de cette façon, il semble que Tomcat charge chaque contexte deux fois. Y a-t-il un autre moyen d'y parvenir?

Répondre

1

Il charge en effet les applications deux fois car vous l'avez configuré de cette façon. Vous auriez besoin d'une instance apache httpd devant tomcat pour faire de l'url réécrire de la magie.