Un Host Virtual o VirtualHost , se utiliza para crear varios sitios web en una máquina con el servidor Web Apache.


 
 

La directiva VirtualHost nos permite definir los Host Virtuales por IP o por Nombre.

De esta forma tendrán funcionamientos diferentes.


 

Hoy veremos los VirtualHosts basados en IP.
 
Los VirtualHosts basados en IP (IP-based Virtual Host), tienen sentido cuando en la misma máquina alojamos varios sitios web en IP´s diferentes (especialmente útil en estos casos la creación de sub-interfaces o interfaces virtuales).

 

 
 

–> Cuando creamos un host virtual basado en ip, tendremos un sitio web alojado en una IP (o varios sitios web alojados en varias IP´s)

–> Cuando creamos un host virtual basado en nombre es porque deseamos crear varios sitios sobre la misma IP, pero sobre diferente puerto y diferente nombre.


  Esta es la ventaja de los Virtual Host, el poder disponer de varios Hosts basados en Nombre en una misma máquina, y de esta forma poder darle mayor rendimiento a una IP.


 

 

Veamos cómo crear un Virtual Host basado en IP

 
– Vamos a crear un Host Virtual que responda por el dominio www1.midominio.com, cuya raíz del sitio se encuentre en /var/www/sitio1 , y que funcione sobre la ip 192.168.1.10 /24 , sobre el puerto 80:
 
Primero configuraremos las interfaces de red, en el archivo interfaces:

 

 

CREAR UNA SUB-INTERFAZ VIRTUAL

Configuramos el archivo interfaces de esta forma (configuramos una interfaz ethernet, y además creamos una sub-interfaz virtual):

 

La sub-interfaz virtual no necesita ni siquiera que activemos una interfaz nueva en VirtualBox. Así que podemos activarla editando el archivo nombrado (que será lo mejor porque así seguro que nos mantiene la configuración en el próximo reinicio) o ejecutando este comando:

 

En la siguiente captura muestro las interfaces configuradas. Se aprecia también la interfaz eth1 con dirección 192.168.56.253, que se trata simplemente de la interfaz Host-Only de VirtualBox que utilizamos para acceder por ssh a nuestra Maquina Virtual Linux.

Configurar interfaces linux

 

 
—> A continuación , con las interfaces de red correctamente configuradas,  tendremos que crear el dominio DNS con Bind

   
(en Linux). No olvideis repasar la entrada del blog.
 

 

Instalación de Apache Web Server

 
Seguimos instalando Apache Server, lo haremos con el comando:

 
Si deseamos instalar Apache con mysql y otros paquetes, podemos utilizar el comando:

 

Posteriormente nos desplazamos al directorio de trabajo:

 
vamos a “/etc/apache2/sites-available” y buscamos el sitio default , que utilizaremos como base para el nuestro.
Entramos al archivo default con nuestro editor preferido (nano, gedit, vim …)

 
Aparecerá algo como esto:

Sitio apache

 

 

En este punto recordaremos que el ejercicio consistía en Crear un Host Virtual que responda por el dominio www1.midominio.com, cuya raíz del sitio se encuentre en “/var/www/sitio1” , y que funcione sobre la ip 192.168.1.10 /24 , sobre el puerto 80


 
Así que empezaremos por  modificar el archivo  “/etc/apache2/sites-available/default”  (donde encontramos un sitio default disponible )   para que quede algo así como:

Con esto creamos un Virtualhost en la ip 192.168.1.10, que responderá a las peticiones del sitio web, sobre el puerto 80.

 

 

En este caso no es necesaria la directiva “NameVirtualHost” , ya que solo tenemos un sitio habilitado.

Name VirtualHost será de utilidad cuando tengamos que habilitar varios sitios sobre la misma ip.
 

Seguimos, nos habíamos quedado en :

La raíz del sitio será “/var/www/sitio1”

en el cual encontramos el siguiente index.html:

 

Después lo guardamos por ejemplo con el nombre del sitio , en este caso www1.midominio.com
Posteriormente, situados en el directorio/etc/apache2/sites-available”, activaremos el sitio web con a2ensite “nombre del sitio” (con lo cual se moverá al directorio sites-enabled o sitios habilitados)
 
También modificaremos el archivo “/etc/apache2/ports.conf ” para que escuche a los VirtualHosts adecuados y en los puertos deseados:
 

 

 

Habilitamos el nuevo sitio web, recargamos la config de Apache y reiniciamos Apache

 
Habilitamos el sitio web Apache con los 2 VirtualHosts:

 

Recargamos la configuración de Apache Server:

 

Reiniciamos Apache Server:

 

 

Pruebas desde el equipo cliente

 
Y nos vamos al pc cliente (en este caso maquina virtual cliente) para hacer las comprobaciones por medio del navegador.
 
El cliente ha de estar configurado en el mismo rango de la red, por ejemplo podemos ponerle la ip 192.168.1.100 /24 , y hemos de configurar la dirección del servidor DNS que utilizará para resolver las consultas.
 

Por tanto, editamos el “/etc/resolv.conf” del equipo cliente y añadimos su resolvedor DNS (que ha de ser el equipo sobre el que hemos montado el DNS, en este caso el 192.168.1.10):
nameserver 192.168.1.10″
 
Siendo 192.168.1.10 el Servidor que estamos configurando como Server DNS y HTTP, hacemos una petición http desde el navegador del cliente:
 

Sitio web apache

 

 

Crear otro Virtual Host, en la misma máquina, sobre otro domino y otro puerto

 
SI quisiéramos crear otro Virtual Host, en este caso podríamos crear otro Host Virtual:
 
– en la sub-interfaz 192.168.1.30
– sobre el puerto 8080
– con ServerName www2.midominio.com
– en DocumentRoot /var/www/sitio2/
 
–> Primero crearíamos el nuevo dominio DNS al igual que el primer dominio: Cómo crear un dominio DBS con Bind.
 
–> Después creamos un index.html en el DocumentRoot de este sitio, y modificaremos el archivo ports.conf para que la máquina también acepte peticiones sobre el puerto 8080 (hemos de añadir en este caso Listen 192.168.1.30:8080)
 
–> Y después, en el archivo del sitio web Apache que tenemos actualmente habilitado (en /sites-enabled), añadiríamos:
 

 

 

– Reiniciamos el servicio Bind:

– Recargamos la config de Apache
– Reiniciamos el servicio de Apache
– Probamos en el pc cliente


 

 

Bueno, ya hemos acabado, hemos configurado correctamente un dominio DNS con Bind, y montado un VirtualHost Apache basado en IP.

 
Más info acerca de los Virtual Hosts basados en IP (IP-based Virtual Host)


Etiquetas del articulo: , , ,


Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas y para servir más rápidos los contenidos.

gpdr,wpSGCacheBypass

Cookies de terceros

Usamos cookies de terceros en las que se almacenan externamente para conocer tus usos de navegación, si ya estás suscrito al boletín y los elementos compartidos en redes sociales.

1P_JAR, AID, DSID, IDE, NID, JCS_INENREF, JCS_INENTIM, __cfduid, _ga, _gat, _gat_gtag_UA_16843793_11, _gid,_wpss_h_, _wpss_p_, gadwp_wg_default_dimension, gadwp_wg_default_metric, gadwp_wg_default_swmetric