Hosts virtuales
Una de las aplicaciones de la característica de Apache llamada VirtualHosts consiste en la posibilidad de crear diferentes sitios web cada uno con su nombre de dominio propio aunque éstos se encuentren alojados en un mismo servidor y, por lo tanto, tengan la misma dirección IP.
¿Qué es un Virtual Host?
El término Host Virtual está asociado a la creación de más de un sitio web (por ejemplo, www.company1.com
y www.company2.com
) en un mismo servidor.
Los sitios web virtuales pueden estar basados en direcciones IP, lo que significa que cada sitio web tiene una dirección IP diferente, o basados en nombres diferentes, lo que significa que con una sola dirección IP podemos configurar diversos sitios web con diferentes nombres (de dominio).
El hecho de que estén funcionando en la misma máquina física pasa completamente desapercibido para el usuario que visita esos sitios web.
Creando archivo de configuración del Host Virtual¶
Para iniciar la configuración de nuestro host virtual nos dirigiremos a la siguiente carpeta:
Una vez ubicados en el directorio correspodiente nos disponemos a crear el archivo de configuracion del Host Virtual (el archivo en cuestión puede llamarse de cualquier forma, pero debe finalizar necesariamente con la extension .conf
)
Y a continuación escribimos la configuración de nuestro Host Virtual. Un ejemplo simple de configuracion para el sitio ficticio dominio.tld
:
Document Root
Aunque no es necesario definir la carpeta raíz de los documentos web dentro del directorio del usuario, sí es una práctica recomendada, especialmente dentro de los proveedores de servicio de web hosting.
Bajo el mismo criterio, se incluyen en el directorio del usuario los archivos de log generados automáticamente por Apache.
Documentación de Apache Web Server
La presente guía está basada en la versión 2.4.x del servidor web incluida en Ubuntu Server 16.04 LTS. Es recomendable consultar la extensa documentación oficial para profundizar los conceptos abordados en la práctica.
Habilitando el Host Virtual¶
Hasta ahora hemos definido nuestro host virtual, pero no lo hemos habilitado. Para "levantar" el sitio, es decir, para que Apache ponga el sitio en modo habilitado , ejecutamos en la terminal:
Donde:a2
Apache2en
Enable (habilitar)site
Sitio webdominio.tdl.conf
Archivo de configuración del host virtual
¿Qué ocurre cuando habilitamos un sitio?
El comando anterior creará un [enlace simbólico](https:_es.wikipedia.org/wiki/Enlace_simb%C3%B3lico) del archivo `dominio.tld.conf` desde la carpeta `/etc/apache2/sites-available` hacia la carpeta `/etc/apache2/sites-enabled`.
Deshabilitando el Host Virtual¶
Una vez que hayamos "levantado" el sitio web con el comando a2ensite
y realicemos cambios en el archivo de configuración del host virtual, para hacer efectivos los cambios tendremos que "bajar" el sitio y luego, volverlo a subir. En ocasiones, tambén nos valeremos de este comando cuando deseemos dejar fuera de linea un sitio.
a2
Apache2dis
Disable (deshabilitar)site
Sitio webdominio.tdl.conf
Archivo de configuración del host virtual
Reiniciando Apache¶
Por último, para que Apache haga efectivo todos los cambios, lo reiniciamos:
Es posible que al hacerlo, Apache nos indique la presencia de errores. Para determinar cuáles son esos errores, ejecutamos:
Una vez solucionado el problema, podremos reiniciar Apache sin problemas.Comandos de gestión de Apache
Existen otros comandos ofrecidos por el servidor para gestionar diversas tareas y que podés encontrar en una sección anterior llamada [Gestión básica del servidor](lamp-basics.md#gestion-general-del-servidor).
Resolución del nombre de dominio¶
Nuestro sitio ya está listo para ser "servido" por el Apache de manera que podamos acceder a él mediante un navegador web. Sin embargo, para que esto sea posible, antes tendremos que "avisarle" al resto de los equipos de la red LAN (o del mundo, si nuestro nombre de dominio no es local) que existe un nombre de dominio asociado a una dirección IP determinada y viceversa.
En otras palabras, precisamos que nuestro equipo "resuelva" dicho nombre de dominio o, lo que es lo mismo, sea capaz de traducir a qué dirección IP apunta el mismo (por ejemplo, la dirección IP correpondiente al dominio www.itel.edu.ar
es 168.197.51.107
).
Existen dos caminos para configurar la resolución de nuestros nombres dominios (en nuestro caso, son dominios locales, es decir, no "reales" sólo accesibles desde nuestra red LAN), a saber: