VirtualHosts por IP en local

Hoy de nuevo vamos a realizar un ejercicio práctico de VirtualHosts basados en IP (IP Based VirtualHosts), incluyendo ServerAlias y diferentes puertos.

 

 

RESUMEN CONFIGURACIÓN VIRTUALHOST BASADO EN IP (IP Based VirtualHosts)

 
En la configuración de un VirtualHost basado en IP entra en juego :

  • 1. La IP, o IP´s configuradas en las interfaces para los diversos VirtualHosts habilitados. (Lo configuramos en archivo /etc/network/interfaces)

–> Podemos tener más de una interfaz; e incluso alguna de ellas puede ser virtual.

 

  • 2. Configuración correcta de/los VirtualHosts en el equipo con Apache Server, por medio del archivo /etc/apache2/nombresitio.conf (el archivo de sitio por defecto es 000-default.conf).

–> Si alguno de nuestros VirtualHost va a utilizar algún puerto además del 80, hemos de habilitarlo en el archivo /etc/apache2/ports.conf, añadiendo: Listen número_de_puerto

 

  • 3. El archivo /etc/hosts

–> En este archivo le decimos al equipo qué IP responde a qué nombre de host (o alias)

 

  • 4. El archivo /etc/resolv.conf

–> En este archivo hemos de configurar el Servidor DNS que resolverá las peticiones DNS. Debería ser el propio equipo (127.0.0.1), para resolver los hostnames que él conozca (/etc/hosts), y además es importante tener configurado otro nameserver para que resuelva las peticiones DNS al exterior y poder acceder a Internet.

–> Si tenemos configurado un servidor Bind DNS, podemos configurar un forwarder (equipo al que se le reenviarán las peticiones DNS que nuestro Server DNS no sepa resolver) en el archivo /etc/bind/named.conf.options

 

 

EJERCICIO 2: VIRTUALHOST BASADO EN IP

 
Teniendo en cuenta que ya hemos hecho algunos otros ejercicios sobre VirtualHosts, vamos a comenzar con este segundo ejercicio de VirtualHosts basados en IP:
 

  • 1. Configuramos correctamente nuestras interfaces de red. En nuestro caso configuramos de forma estática la interfaz principal de red, y después crearemos una sub-interfaz virtual.

La sub-interfaz la creamos de esta forma:

auto eth0:1
 
iface eth0:1 inet static
 
address
 
netmask
 
gateway

 

 

Esta será la subinterfaz 1 de la interfaz eth0. Podríamos crear más sub-interfaces …

 
sub interfaz virtual-virtualhost por ip

 

Podemos ver que la interfaz eth0 tiene la IP 192.168.110.202

Y la sub-interfaz eth0:1 tiene la IP 192.168.110.203
 

 

  • 2. Configuramos correctamente el archivo del sitio/s habilitado/s con Apache Server:

–> Archivo de configuración de los sitios Apache con VirtualHosts basados en IP (por defecto 000-default.conf):
 
archivo .conf sitio web - apache virtualhosts por ip

 

–> Y añadimos los puertos de escucha necesarios, en el archivo /etc/apache2/ports.conf

 
ports.conf apache listen 8080

 

 

  • 3. Configuramos el archivo /etc/hosts (para que la máquina sepa resolver el ServerAlias de los VirtualHosts):

 

archivo hosts-virtualhost basado en ip
 

 

RECARGAR CONFIGURACIONES Y REINICIAR SERVICIOS

 
Ahora hemos de realizar:

  • un restart de la red:
    service networking restart

        (porque hemos modificado las interfaces y también modificado el archivo etc/hosts)

  •  

  • una recarga de la configuración de Apache Server:
    service Apache2 reload
  •  

  • un restart del servicio Apache:
    service Apache2 restart

 

Y comenzamos a realizar las pruebas para comprobar que los VirtualHosts responden correctamente, tanto por IP como por ServerAlias
 

 

PRUEBAS DE FUNCIONAMIENTO DE LOS VIRTUALHOSTS POR IP

 
Primero vamos a comprobar el VirtualHost1, que responderá sobre la IP 192.168.110.202, y con el ServerAlias pruebas.local, sobre el puerto 80. Tenemos un WordPress instalado sobre este VirtualHost.

virtualhost por ip funciona

 

Y podemos ver que también funciona su ServerAlias (pruebas.local)

VirtualHost1 alias linux port 80

 

 

Y ahora comprobamos el VirtualHost2, que responderá sobre la IP 192.168.110.203, y con el ServerAlias pruebas2.local, sobre el puerto 8080. En este VirtualHost hemos configurado un simple archivo Index.html.

virtualhost2 por ip funciona

 

 

Y podemos ver que también funciona su ServerAlias (pruebas2.local)

virtualhost2 por ip alias funciona

 

 

Si aún te quedan dudas y quieres investigar un poco más, no dudes en leer los artículos: