enchufado
   RSS
#
Subdominios al vuelo con Apache (GNU/Linux) 2007-09-09 18:41:09

Con este flamante tí­tulo que he tomado prestado, quiero comentar brevemente que es posible tener una configuración para un dominio dado tal que un subdominio 'inexistente' para Apache sea gestionado.

En realidad no es una configuración para un dominio inexistente. En su lugar, se trata de usar una wildcard para especificar que los subdominios restantes (y esto es importante, porque los definidos seguiran funcionando como hasta la fecha, esto es, sin verse afectados por la nueva configuración) los gestionará un VirtualHost dado.

¿Cómo hacemos esto? Pongamos un ejemplo de uso. Supongamos que disponemos del nombre de dominio comecacahuet.es, que tenemos distintos VirtualHosts para algunos subdominios (el.comecacahuet.es y ella.comecacahuet.es) y que queremos que cada usuario tenga un VirtualHost con su nombre (p.ej. mariano.comecacahuet.es, antonia.comecacahuet.es, etc...). La lista podría ser interminable y tendrí­amos que definir tropocientos VHosts. ¡Pues el picar se va a acabar! ¡Llévese con su Apache una wildcard de regalo! ;)

Para tener este pequeño ejemplo, tendríamos los siguientes ficheros de configuración (en el directorio de los VHosts de Apache) con los siguientes contenidos:

  1. Fichero 001-comecacahuet.es. Contiene la definición del VHost para el dominio principal: comecacahuet.es que, por ejemplo, podría cargar la página principal.
  2. Fichero 002-el_ella_comecacahuet.es. Contiene la definición del VHost para los subdominios el.comecacahuet.es y ella.comecacahuet.es, y ambos apuntan al mismo sitio.
  3. Fichero 100-cualquiera_comecacahuet.es. Contiene la definición del VHost cualquiera.comecacahuet.es y para cualquier otro subdominio de esta rama .comecacahuet.es que nos pudieramos imaginar: elchivi.comecacahuet.es, mariadelpilar.comecacahuet.es, etc...

Observaciones a los anteriores archivos de configuración:

  • Para que todo funcione correctamente, la sentencia NameVirtualHost *:80 es necesaria sólo para el primer VHost de nuestro ejemplo.
  • En el ejemplo, ambos subdominios el.comecacahuet.es y ella.comecacahuet.es apuntan al mismo sitio. Dicho de otro modo, uno de los dos subdominios sería un alias (ServerAlias) del otro.
  • Es en el último fichero de configuración (el 100) dónde está la magia del asunto. Dispone del ServerName que queramos para el nombre del subdominio genérico (cualquiera.comecacahuet.es, en nuestro caso), y posteriormente el ServerAlias (*.comecacahuet.es) hace un catch up de todo lo demás. Llegados a este punto, ya sería a nivel de aplicación (web) dónde gestionaríamos qué cargar para cada subdominio recibido.
  • El orden de los VHosts importa; es por ello que se ha elegido esta nomenclatura numérica (001, 002 y 100) para cada uno de los archivos de configuración de los VHosts de ejemplo. ¿Que porqué le hemos puesto 100 al último fichero de configuración? Para estar preparados para el cambio, puede que en un futuro debamos añadir otros subdominios en el mismo nivel (.comecacahuet.es). Para hacerlo sólo haría falta definir p.ej. un VHost tal que 003-elnuevo_comecacahuet.es (y así sucesivamente con este incremento numérico), y por el orden numérico este nuevo Vhost creado tomaría preferencia sobre el 100-cualquiera_comecacahuet.es, que es muy probablemente el resultado deseado.

Mis agradecimentos a Mario, que fue quién me comentó la existencia de esta posibilidad :)


Comentarios (2)


Volver al indice

login, admin, form, register