Un Host Virtual o VirtualHost , se utiliza para crear sitios web con Apache http.

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

De esta forma tendrán funcionamientos diferentes.
 

 

Cuando creamos un host virtual basado en ip, tendremos un sitio web alojado en una IP.
Cuando creamos un host virtual basado en nombre es porque deseamos crear varios sitios sobre la misma IP, pero sobre diferente puerto. 


 
Esta es la ventaja de los Virtualhost, el poder disponer de Hosts basado en Nombre, y de esta forma poder darle mayor rendimiento a una IP.
Veamos cómo crear un VirtualHost basado en IP:

– Si deseamos 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, así que tecleamos:

 
 
nano /etc/network/interfaces

 
Y configuramos el archivo de esta forma:

GNU nano 2.2.2        Archivo: /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# La interfaz de Loopback
auto lo
iface lo inet loopback

# La interfaz de Red primaria
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

#Otra Subinterfaz secundaria
auto eth0:1
iface eth0:1 inet static
address 192.168.1.30
netmask 255.255.255.0

 

La subinterfaz 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:

[email protected]:/etc/bind# ifconfig eth0:1 192.168.1.30 netmask 255.255.255.0

 
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.
Seguimos instalando Apache, lo haremos con el comando:

$sudo apt-get install apache2

 
Posteriormente nos desplazamos al directorio de trabajo:

cd /etc/apache2/

 
vamos a “/etc/apache2/sites-available” y buscamos el sitio default , que utilizaremos como base para el nuestro.
Entramos al archivo default con

nano default

 
Nos 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:

<VirtualHost 192.168.1.10 :80>
ServerAdmin [email protected]
ServerName www1.midominio.com
DocumentRoot /var/www/sitio1/
</VirtualHost>

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:

<h2>FUNCIONA !!</h2>
BIENVENIDOS AL SERVER

<center>WWW1.MIDOMINIO.COM.COM</center>

<ul>
	<li>- ESTE ES EL VIRTUALHOST ALOJADO EN VAR/WWW/SITIO1</li>
</ul>
QUE RESPONDE CON LA IP 192.168.1.10
, POR EL PUERTO 80

 
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:

[email protected]:/etc/apache2# nano ports.conf
# If you just change the port or add more ports here, you will likely also

# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default

# This is also true if you have upgraded from before 2.2.9-3 (i.e. from

# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and

# README.Debian.gz

Listen 192.168.1.10:80

 

Reiniciamos Apache

/etc/init.d/apache2 restart

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 ” y añadimos

“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

 
Bueno, nos ha costado un ratillo pero ya hemos acabado, hemos configurado correctamente un dominio DNS con Bind, y montado un servidor web Apache Http sobre una Ip.

En el próximo capítulo veremos el siguiente caso:

-Un VirtualHost sobre el dominio www1.midominio.com , en el sitio 1, con la IP 192.168.1.10 , Puertos 80 y 8088
-Un VirtualHost sobre el dominio www2.midominio.com , en el sitio 2, con la IP 192.168.1.10 , Puertos 80 y 8088

 


Etiquetas del articulo: , ,


Suscríbete para acceder a la zona privada

Suscribiéndote a la lista de correo de El Taller del Bit conseguirás entrar a la zona privada de descargas con materiales exclusivos (ebooks, artículos privados, plugins, descargas de exámenes resueltos ...)

Gracias. Te has suscrito con éxito!