Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Como configurar un Host Virtual en Apache basado en Nombre

10 septiembre, 2019
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.