servidor - Tomcat: dos pathes de contexto para una aplicación web
servidor tomcat (2)
He estado tratando de resolver un problema, pero aún no he encontrado una buena solución. El problema es: tengo una aplicación web y esta aplicación web está implementada en el $TOMCAT_HOME/webapps/XXX
. Puedo llegar a eso en la dirección http://localhost:8080/XXX
, PERO, me gustaría llegar a la aplicación web en la dirección http://localhost:8080/YYY
también. Agregué lo siguiente al server.xml: `
<Service>
<Engine>
<Host>
.......
<Context path="/YYY" docBase="XXX"></Context>
</Host>
</Engine>
</Service>
`
Ayudó pero el Tomcat comenzó dos contextos web y causó algún otro problema. ¿Es posible crear una dirección "múltiple" para una aplicación web?
Intente usar el atributo crossContext:
<Context path="/YYY" docBase="XXX" crossContext="true"></Context>
La url de la aplicación web se clasifica de la siguiente manera:
PROTOCOLO: // DOMINIO: PUERTO / CONTEXTO / nombre de la página
Las soluciones para tener la misma aplicación en dos direcciones distintas son las siguientes:
Si desea diferenciar solo en el protocolo (digamos entre http y https), solo tiene 2 conectores en server.xml.
si desea diferenciar en nombre de DOMINIO, esto se resuelve en el nivel de DNS.
Si desea diferir en el nombre del contexto (nombre de la aplicación web), debe poner apache al frente (mod_proxy o mod_ajp) y luego crear una regla de reescritura (mod_rewrite). digamos reescribir todo desde
/a/*
y/b/*
hasta/c/*
Si desea diferir en el nombre de la página, debe usar asignaciones de servlets.
Poner apache delante de tomcat vía mod_proxy es muy fácil, hay múltiples recursos en la web. Sería muy malo duplicar las aplicaciones (tener todo cargado dos veces).
En cuanto a su pregunta, recomendaría la duplicación de fondos en server.xml.
<Context docBase="myapp" path="/address1" reloadable="true" />
<Context docBase="myapp" path="/address2" reloadable="true" />
Esto es excelente para la memoria, así como para los mecanismos de sesión, la concurencia, etc.