Cómo configurar Hosts Virtuales en Apache.

Thursday, February 10, 2011 19:56
Posted in category Administrador Sistemas

El escenario en el que entran en juego los “Hosts Virtuales” o “VirtualHost“, es aquel en el que necesitamos hacer funcionar más de un sitio web (dominio) en una sola máquina. Con los Virtual Hosts conseguimos a partir de una sencilla configuración, tener un único servidor Web capaz de servir diferentes dominios tales como www.undominio.com y www.otrodominiodiferente.com.

En una instalación de Apache con un solo sitio se utiliza la directiva ServerName para indicar cúal es el dominio que se está sirviendo, sin embargo, cuando lo que pretendemos es administrar varios sitios tendremos que emplear la directiva VirtualHost.

En el siguiente ejemplo configuraremos los dominios anteriores para que el servidor Apache sea capaz de servirlos.

El primer paso para configurar nuestro “Virtual Hosting” es eliminar la directiva ServerName y substituirla por NameVirtualHost.

#ServerName www.mi_unico_dominio.com
NameVirtualHost  *:80
NameVirtualHost  *:443

Posteriormente es necesario definir las respectivas secciones para cada dominio a través de la directiva VirtualHost:

<VirtualHost *:80>
        ServerName  www.undominio.com
        ServerAlias www.undominio.es www.undominio.com subdomain.undominio.com
        DocumentRoot /var/www/carpeta
 
        RewriteEngine   on
        <Directory /var/www/carpeta/>
           AllowOverride All
       </Directory>
 
</VirtualHost>
 
<VirtualHost *:80>
       ServerName www.otrodominiodiferente.com
       ServerAlias otrodominiodiferente.com www.otrodominiodiferente.es
       ServerAdmin soporte@otrodominiodiferente.com
       DocumentRoot /var/www/otracarpeta
 
 
        RewriteEngine   on
        <Directory /var/www/otracarpeta/>
           AllowOverride All
       </Directory>
 
</VirtualHost>
 
 
<VirtualHost *:443>
  <IfModule mod_ssl.c>
         SSLEngine on
         SSLCertificateFile    /etc/apache2/ssl.crt/certificado.crt
     SSLCertificateKeyFile /etc/apache2/ssl.key/certificado.key
     SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
   </IfModule>
       ServerName www.otrodominiodiferente.com
       ServerAlias otrodominiodiferente.com www.otrodominiodiferente.es
       ServerAdmin soporte@otrodominiodiferente.com
       DocumentRoot /var/www/otracarpeta
 </VirtualHost>

Es posible que con un distintos nombres de dominios queramos que se sirva el mismo sitio, por lo que podremos apoyarnos de la directiva ServerAlias, tal y como se muestra en los ejemplos anteriores.

Al estar configurando diferentes sitios tendremos que indicarle a Apache de alguna manera donde se encuentran los ficheros que debe servir dependiendo del dominio al que estemos accediendo. Para ello contamos con la directiva DocumentRoot que indicara donde se encuentra el directorio base de nuestros ficheros.

You can leave a response, or trackback from your own site.

Leave a Reply