Alias per i diversi contesti con Apache Tomcat 5.5
-
21-09-2019 - |
Domanda
Sto usando Tomcat 5.5 e voglio fare quanto segue:
Se due applicazioni Web vengono distribuite (lasciarli essere foo e bar ) Voglio essere in grado di accedere a tutti e due con i relativi percorsi e gli alias.
localhost: 8080 / foo -> foo e foo.example.com -> foo
e, rispettivamente,
localhost: 8080 / bar -> bar e bar.example.com -> bar
Se io uso diversi host all'interno del motore e gli alias -come la documentazione dictates- poi gli URL alias funzionano bene, ma non i relativi quelle. Al fine di avere tutti e due lavorare correttamente ho bisogno di un ospite in più "localhost" e dichiaro ancora una volta gli stessi contesti. Ecco il mio 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
Anche se funziona in questo modo, sembra che Tomcat sta caricando ogni contesto due volte. C'è un altro modo per raggiungere questo?
Soluzione
Si carica infatti le applicazioni due volte perché si è configurato in questo modo. Avreste bisogno di un'istanza apache httpd davanti a Tomcat di fare qualche magia URL Rewrite.