Crear Virtual Hosts en Apache2

El servidor web de Apache2 es una de los servicios más populares de Internet para servir aplicaciones web, Nginx es el servidor web más usado actualmente.

 apache vs nginx

 

Ofrece muchas posibilidades de configuración, como por ejemplo crear distintos servidores virtuales para diferentes dominios. Esto quiere decir que en una misma máquina con una instancia de Apache, es posible tener los diferentes dominios jesus.com y miriam.com sin necesidad de tener dos servidores diferentes. Esto se realiza mediante la configuración de hosts virtuales en Apache para que apunten a distintas carpetas, y es lo que vamos a aprender en este tutorial, el cual realizaré en una máquina Kali 2020.

Pasos:

Instalar Apache

sudo apt update && apt upgrade

sudo apt install apache2

Crear los directorios donde vas a estar alojadas las webs

sudo mkdir /var/www/html/jesus.com

sudo mkdir /var/www/html/miriam.com

Crear los Virtual Host

Los archivos Virtual Host contienen información específica para cada dominio. Ya existe un archivo de configuración por defecto que utilizaremos como plantilla para crear los archivos de jesus.com y miriam.com

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/jesus.com.conf

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/miriam.com.conf

La estructura de ficheros debe quedar así.

etc_apache2_sites_availabe

Como podéis observar, ambos apuntan al directorio /var/www/html, por lo que hay que hacer que apunten a los directorios creados anteriormente.

El archivo de configuración de jesus.com ubicado en /etc/apache2/sites-available/jesus.com.conf quedará de la siguiente manera:

<VirtualHost *:80>

ServerAdmin webadmin@dominio.com

ServerName jesus.com

ServerAlias www.jesus.com

DocumentRoot /var/www/html/jesus.com

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

El archivo de configuración de miriam.com ubicado en /etc/apache2/sites-available/miriam.com.conf quedará de la siguiente manera:

<VirtualHost *:80>

ServerAdmin webadmin@dominio.com

ServerName miriam.com

ServerAlias www.miriam.com

DocumentRoot /var/www/html/miriam.com

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Habilitar los nuevos Virtual Host

De inicio el directorio /etc/apache2/sites-enabled sólo contiene el enlace simbólico (acceso directo) 000-default.conf, una vez vayamos habilitando los sitios, se irán creando más enlaces.

 etc_apache2_sites_enabled

sudo a2ensite jesus.com.conf

El comando anterior lo que hace es crear el fichero jesus.com.conf en el directorio /etc/apache2/sites-enabled que será un acceso directo al fichero jesus.com.conf situado en el directorio /etc/apache2/sites-available

etc_apache2_sites-enabled

sudo a2ensite miriam.com.conf

El comando anterior lo que hace es crear el fichero miriam.com.conf en el directorio /etc/apache2/sites-enabled que será un acceso directo al fichero miriam.com.conf situado en el directorio /etc/apache2/sites-available

El esquema de ficheros quedaría así:

sites_enabled

Por lo tanto si listamos el directorio /etc/apache2/sites-enabled quedaría así:

etc_apache2_sites-enabled

Crear la web para cada usuario

Hay que crear un archivo index.html con el contenido deseado dentro de cada usuario.

Modificar los permisos a las carpetas para que sean usuario y grupo de Apache

Modificar el archivo hosts de Windows

Modificar el fichero host que es un DNS, leer el siguiente artículo para aprender más acerca del fichero hosts, https://jesusfernandeztoledo.com/modificar-archivo-hosts-de-windows/

Ver la IP que tenemos en nuestro equipo Kali

Comprobar si funciona

Si queremos deshabilitar un sitio.

Hay que poner el comando,

sudo a2dissite jesus.com.conf

Una vez en producción …

Si queremos modificar algún fichero de los Virtual Host cuando esté en producción, tras modificar el fichero nunca hacer systemctl reload apache2 puesto que si tiene errores de configuración el fichero el servidor estará caído hasta que lo restablezcamos.

Por lo tanto apache2ctl configtest

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies ACEPTAR

Aviso de cookies