Saltar la navegación

2.2.- Virtualhosts basados en IP.

Ilustración en la que se ven tiras identificativas con números IP,    impresas. Son IP privadas: 10.1.8.X, donde X representa un número comprendido entre 0 y 255.
bcostin (CC BY-NC-SA)

La IP que debemos poner ahora en la definición de la directiva Virtualhost cambia, cada IP corresponde a una interfaz de red del servidor web, en nuestro escenario: IP1_Servidor_Web=192.168.200.250, IP2_Servidor_Web=192.168.200.251

Este método no aporta ventajas sobre el anterior, es más, aún puede ser más difícil de mantener si las IP del servidor web se modifican con cierta frecuencia.

¿Cómo lo haces? Sigues el mismo procedimiento usado para los virtualhost basado en nombre, únicamente se diferencia en los ficheros a crear para los virtualhost, así:

  1. En la configuración de Apache2 existe un directorio /etc/apache2/sites-available donde se definen los virtualhost, cada virtualhost en un fichero de texto de configuración distinto, así crea los dos ficheros siguientes en la ruta /etc/apache2/sites-available.
  2. Fichero configuración virtualhost: empresa3.com.conf
    <VirtualHost IP1_Servidor_Web>
    	DocumentRoot "/var/www/empresa3"
    	ServerName empresa3.com
    	ServerAlias www.empresa3.com empresa3.es www.empresa3.es
    </VirtualHost>
    
  3. Fichero configuración virtualhost: empresa4.com.conf
    <VirtualHost IP2_Servidor_Web>
    	DocumentRoot "/var/www/empresa4"
    	ServerName empresa4.com
    	ServerAlias www.empresa4.com empresa4.es www.empresa4.es
    </VirtualHost>
    

Explicación fichero virtualhost:

<VirtualHost>: Inicio etiqueta virtualhost, define la IP1 del servidor web donde se aloja la página de la empresa, en este caso empresa3. El puerto TCP por defecto es el 80, definido en la configuración principal del servidor, mediante la directiva Listen, por lo cual no es necesario ponerlo. Se pueden usar varias directivas Listen para especificar varias direcciones y puertos de escucha. El servidor responderá a peticiones de cualquiera de esas direcciones y puertos. Por ejemplo, para hacer que el servidor acepte conexiones en los puertos 80 y 8080, usaremos:

listen 8080

<VirtualHost IP1_Servidor_Web:80>
	DocumentRoot "/var/www/empresa3"
	ServerName empresa3.com
	ServerAlias www.empresa3.com empresa3.es www.empresa3.es
</VirtualHost>

<VirtualHost IP1_Servidor_Web:8080>
	DocumentRoot "/var/www/empresa3_8080"
	ServerName empresa3.com
	ServerAlias www.empresa3.com empresa3.es www.empresa3.es
</VirtualHost>

Para hacer que el servidor acepte conexiones en dos direcciones IP y puertos diferentes, usaremos:

<VirtualHost IP2_Servidor_Web:80>
DocumentRoot /var/www/empresa4/
ServerName empresa4.com
ServerAlias www.empresa4.com empresa4.es www.empresa4.es
</VirtualHost>
  • DocumentRoot /var/www/empresa3/: Definición de la ruta donde está alojada la página web en el servidor, en este caso: /var/www/empresa3/ mediante la directiva DocumentRoot.
  • ServerName www.empresa3.com : Definición del nombre DNS que buscará la página alojada en la ruta anterior del servidor mediante la directiva ServerName. Es el nombre que escribes en el navegador para visitar la página.
  • ServerAlias empresa3.com : La directiva ServerAlias permite definir otros nombres DNS para la misma página.
  • </VirtualHost>: Fin de la etiqueta VirtualHost: fin de la definición de este virtualhost para la empresa3.

Para saber más

En el siguiente enlace encontrarás información sobre la directiva RewriteRule, la cual te puede evitar tener que utilizar la directiva ServerAlias, pues te permite reescribir las direcciones URL.

Directiva RewriteRule