Crear Virtual Hosts con Tomcat


    
     A menudo, varias aplicaciones corren bajo el mismo Tomcat. Una forma de tener varias aplicaciones en el mismo servidor es usar contextos, colgando las aplicaciones en webapps/contexto1, webapps/contexto2, …
El problema que presenta este método es que para acceder a las aplicaciones tendremos direcciones del estilo http://www.ignotion.com/contexto1, http://www.ignotion.com/contexto2, … Una forma de evitarlo es que en las dns del dominio se haga una redirección con frame, que ocultará el contexto en la ventana del navegado pero este tipo de soluciónes no son aconsejables ya que entre otras cosas, perjudicará el ranking de nuestras páginas en los buscadores.

Los virtual host son la solución más apropiada a este tipo de problemas. En un virtual host, por decirlo de alguna manera, se asocia un dominio a un directorio de aplicaciones. En Tomcat es muy sencillo crear estos virtual hosts.

Caso
Supongamos que tenemos nuestro tomcat funcionando, con la aplicación Ignotion en su webapps/ROOT. Queremos añadir una nueva aplicación, (app2), a la que se accederá por el dominio miapp2.com.
Supondremos que nuestro tomcat está instalado en <TOMCAT_HOME>.
Supondremos que la aplicación está en <APP2_DIR>, (p.ej /var/www/app2, vale cualquier directorio que no esté en <TOMCAT_HOME>/webapps)

Pasos

1- Editar <TOMCAT_HOME>/conf/server.xml.

En este archivo es donde vamos a añadir el nuevo virtual host pegando estas lineas después del host definido por defecto, (justo después de la linea </HOST>).

 Configuración

<Host name="miapp2.com" debug="1" appBase="<APP2_DIR>" unpackWARs="true">
  <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="app2." suffix=".txt" timestamp="true"/>
  <Context path="" docBase="" debug="1" reloadable="true" crossContext="true" />
</Host>

Con esto nuestro contexto está preparado.

2- Crear el directorio <APP2_DIR> si no estaba creado ya, y meter algún html dentro para probar.

IMPORTANTE
: <APP2_DIR> no funciona como el directorio <TOMCAT_HOME>/webapps. <APP2_DIR> es directamente el directorio de la aplicación app2, por lo que hay que tener cuidado al descomprimir los .WAR, ya que por defecto se creará la estructura <APP2_DIR>/<APP2_DIR>/ficheros.

3- En caso de que el sistema sea Linux pueden quedar dos cosas por hacer:
# chown -R tomcat:tomcat <APP2_DIR>
Editar /etc/hosts y añadir: 127.0.0.1 miapp2.com

Estos dos puntos son opcionales y el dominio virtual puede funcionar sin hacerlos, pero si pruebas y no funciona, vuelve a probar después de hacer esto.

4- Reiniciar tomcat:

 Código

Para Linux:
<TOMCAT_HOME>/bin/catalina.sh stop
<TOMCAT_HOME>/bin/catalina.sh start

Para Windows: Si usas windows seguro que sabes como reiniciar tu Tomcat.

Desde este momento podemos acceder a http://www.miapp2.com sin tener que usar contextos, así de fácil. Para verificar que el virtual host funciona aunque no funcione http://www.miapp2.com, (por ejemplo porque no se han propagado las DNS aún), es una buena idea editar los hosts de tu máquina (windows o Linux), y acceder localmente comprobando si el servidor responde o no. Si el servidor responde localmente y no a http://www.miapp2.com, tendrás que esperar un poco a que se propaguen las DNS…

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: