De esta forma tendrán funcionamientos diferentes.
–> 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.
– 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:
gedit /etc/network/interfaces
Configuramos el archivo interfaces de esta forma (configuramos una interfaz ethernet, y además creamos una sub-interfaz virtual):
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
gateway 192.168.1.1
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:
root@Ubuntu-server:/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.
—> 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 Server, lo haremos con el comando:
$sudo apt-get install apache2
Si deseamos instalar Apache con mysql y otros paquetes, podemos utilizar el comando:
apt install libapache2-mod-php5 php5-mysql mysql-server php5-gd
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 nuestro editor preferido (nano, gedit, vim …)
nano default
Aparecerá algo como esto:
Así que empezaremos por modificar el archivo “/etc/apache2/sites-available/default” (donde encontramos un sitio default disponible ) para que quede algo así como:
ServerAdmin webmaster@midominio.com
ServerName www1.midominio.com
DocumentRoot /var/www/sitio1/
Con esto creamos un Virtualhost en la ip 192.168.1.10, que responderá a las peticiones del sitio web, sobre el puerto 80.
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:
FUNCIONA !!
BIENVENIDOS AL SERVER
WWW1.MIDOMINIO.COM.COM
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:
root@Ubuntu-server:/etc/apache2# gedit 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
Habilitamos el sitio web Apache con los 2 VirtualHosts:
a2ensite default.conf
Recargamos la configuración de Apache Server:
/etc/init.d/apache2 reload
o
service apache2 reload
Reiniciamos Apache Server:
/etc/init.d/apache2 restart
o
service 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” 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:
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:
<VirtualHost 192.168.1.30 :8080>
ServerAdmin webmaster@midominio.com
ServerName www2.midominio.com
DocumentRoot /var/www/sitio2/
– Reiniciamos el servicio Bind:
rndc reload
o
/etc/init.d/bind9 reload
/etc/init.d/bind9 restart
– 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)