Saltar al contenido

Como configurar un Host Virtual en Apache basado en Nombre

apache

En este tutorial vamos a ver como configurar un Host Virtual en Apache2 basado en Nombre e popular servidor web de software libre y c贸digo abierto.

Hay varios tipos de Virtual Host el m谩s popular es el basado en Nombre y es el que aprenderemos a configurar a continuaci贸n

Que es un Host Virtual (贸 Virtual Host) basado en Nombre

No es m谩s que hospedar m煤ltiples dominios del estilo (www.ejemplo.com, www.otrodominio.com, etc) bajo una misma direcci贸n IP. Este tipo de configuraci贸n es muy com煤n en los Hosting compartidos, donde m煤ltiples clientes comparten un mismo servidor.

Para este tutorial debes tener un servidor Apache funcionando, puedes revisar los siguiente tutoriales donde explico como instalar un servidor LAMP el cual incluye el servidor Apache.

Como instalar un Servidor LAMP en Ubuntu Paso a Paso

Como instalar un Servidor LAMP en Fedora 12 paso a paso

Host Virtuales en Apache

Aqu铆 va un poco de teor铆a para explicar como funciona si quieres puedes ir de una vez a la Configuraci贸n.

Apache 2 tiene varios directorios de configuraci贸n, los que nos interesan en este momento son dos el /etc/apache2/sites-available/ y el /etc/apache2/sites-enable, el primero tiene los archivos de configuraci贸n de los sitios disponibles y el segundo son links simb贸licos de los sitios activos, por defecto al instalar Apache se crea un archivo llamado default que contiene la configuraci贸n b谩sica de acceso de Apache y es un archivo que no se debe borrar.

Configurar Host Virtual Basado en Nombre

S贸lo tenemos que seguir los siguientes pasos:

Vamos a suponer que queremos crear un Host Virtual llamado www.ejemplo.com y que la direcci贸n IP p煤blica de nuestro servidor es 10.0.0.5.

1. Creamos un archivo en /etc/apache2/sites-available llamado ejemplo.com

En Ubuntu :

sudo nano /etc/apache2/sites-available/ejemplo.com

En Fedora como root:

su -
nano /etc/apache2/sites-available/ejemplo.com

Aqu铆 estoy usando el editor de texto nano pueden usar el de su preferencia (vim, emacs, gedit, kate, etc).

2. Dentro del archivo ejemplo.com que acabamos de crear escribimos lo siguiente:

<Virtual Host 10.0.0.5:80>
 ServerName www.ejemplo.com
 ServerAlias ejemplo.com *ejemplo.com
 DocumentRoot /var/www/ejemplo
</Virtual Host>

Vamos a ver l铆nea por l铆nea:

  • Empezamos con <Virtual Host 10.0.0.5:80> Aqu铆 estamos indicando la directiva VirtualHost para decir que es un Servidor Virtual indicamos la direcci贸n IP donde va a responder y el puerto (80 es el puerto por defecto donde escucha Apache). Si queremos que escuche en todas las direcciones IP quitamos la direcci贸n y colocamos un asterisco quedar铆a *:80.
  • ServerName es el nombre del servidor en nuestro caso es www.ejemplo.com
  • ServerAlias son otras formas que el usuario puede escribir el nombre, sin el www y el *.ejemplo indica que puede tener subdominios como foro.ejemplo.com, y todos ir谩n a la misma p谩gina.
  • DocumentRoot es donde est谩n guardados los archivos de nuestra p谩gina. En este caso en /var/www/ejemplo pero puede ser cualquier carpeta donde tengan los archivos (cuidado con la seguridad y los permisos de la carpeta.

3. Guarda el archivo y ejecuta en el terminal el siguiente comando como administrador (o con sudo seg煤n el caso):

a2ensite ejemplo.com

Este comando crea un link simb贸lico en la carpeta /etc/apache2/sites-enabled, para activar nuestro sitio.

4. Reinicia el Apache:

Ubuntu:

sudo service apache2 restart

Fedora:

su -
service httpd restart

Y prueba en tu navegador que funciona correctamente escribiendo la direcci贸n www.ejemplo.com (o la que hayas configurado) te deber铆a aparecer la pagina que elegiste. Si est谩s utilizando un servidor interno de pruebas sin direcci贸n IP p煤blica recuerda colocar en el archivo /etc/resolv.conf de la PC desde donde vayas accesar la direcci贸n y nombre del dominio algo como:

10.0.0.5     www.ejemplo.com

Para que no haga la petici贸n al DNS y sepa a que direcci贸n debe apuntar.

Eliminar un Host Virtual en Apache

Si queremos deshabilitar el sitio ejecutamos como root o utilizando sudo:

a2dissite ejemplo.com

Esto elimina el link simb贸lico a /etc/apache2/sites-enabled/, y deja de funcionar el Host Virtual.

Eso es todo por ahora en la serie de art铆culos de Apache, como siempre cualquier duda, pregunta o sugerencia puedes dejar tu comentario.