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
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
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]
ServerName www.dos.com
ServerAlias dos.com
DocumentRoot /var/www/sitiodos
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
Allow from All
/etc/init.d/apache2 restart