Dominios virtuales en apache2


Descripción general

Los dominios virtuales consisten en utilizar un mismo servidor web para atender varios dominios. Se utiliza en el caso en que de dispone de una única dirección IP pública y la misma esta asociada a varios nombres de dominio. Por ejemplo, la IP X.Y.Z.W esta asociada a este_dominio.com.ar y aeste_otro_dominio.com.ar y los sitios están alojados en un mismo servidor web apache.

Configuración

Para que funcionen varios dominios virtuales en un host que tiene asociado los dominios a una única IP se debe utilizar la cláusula NameVirtualHost y VirtualHost.
En /etc/apache2/sites-available vamos a tener un archivo por cada uno de nuestros sitios, que luego serán enlazados dinámicamente desde /etc/apache2/sites-enabled
Cada uno de estos archivos (relacionados con cada sitio) van a vincular el contenido real del sitio web.
Vamos a los bifes, tengo dos dominios:
  • www.uno.com
  • www.dos.com
El dominio uno.com debe aceptar las consultas al puerto 80 pero redirigirlas al puerto 443 porque queremos que funcione bajo SSL. El segundo, funciona solo en el puerto 80.
Creamos estos dos archivos y los enlazamos como dijimos:
/etc/apache2/sites-available# touch www.uno.com
/etc/apache2/sites-available# touch www.dos.com

/etc/apache2/sites-available#cd ../sites-enabled
/etc/apache2/sites-enabled#ln -s ../sites-available/www.uno.com uno
/etc/apache2/sites-enabled#ln -s ../sites-available/www.dos.com dos
Vamos a encontrar bajo este directorio también un archivo que es el que trae apache por defecto, este es el famoso It works!.
Antes de ver cómo configurar cada uno de estos dominios vale la pena aclarar que la cláusula NameVirtualHost debe ir en uno solo de los archivos que se encuentren en /sites-available/ , esto le indica a apache que se están utilizando varios hostvirtuales. En nuestro caso lo vamos a incluir en www.uno.com pero podría ir en cualquiera.
Ahora sí, veamos lo que ponemos en www.uno.com:
NameVirtualHost *:443
NameVirtualHost *:80


   ServerName www.uno.com
   ServerAlias uno.com
   DocumentRoot /var/www/sitiouno

   
     AllowOverride All
     Options MultiViews Indexes SymLinksIfOwnerMatch
     Allow from All
   
   #Certificados
   SSLEngine on
   SSLCertificateFile /etc/apache2/sites-available/uno-ssl.crt
   SSLCertificateKeyFile /etc/apache2/sites-available/uno-ssl.key



   ServerName www.uno.com
   ServerAlias uno.com
   DocumentRoot /var/www/sitiouno

   
     AllowOverride All
     Options MultiViews Indexes SymLinksIfOwnerMatch
     Allow from All
   

   # Redirigir a https
   RewriteEngine On
   RewriteRule ^(.*)$ https://www.dos.com$1 [R,L]

Ahora veamos el contenido del sitio www.dos.com

   ServerName www.dos.com
   ServerAlias dos.com
   DocumentRoot /var/www/sitiodos

   
      AllowOverride All
      Options MultiViews Indexes SymLinksIfOwnerMatch
      Allow from All
   

Solo queda reiniciar el apache2 y listo:
/etc/init.d/apache2 restart
Para que ste blog siga creciendo:


Visitenos en:

Instagram