Continuamos con las entradas de Raspberry Pi viendo como configurar un Virtual Host en Apache, una mejora conveniente para realizar en nuestro servidor.
En la entrada anterior vimos cómo configurar un servidor Apache. En esta configuración sencilla empleábamos una única dirección IP o dominio, que servía ficheros de un único directorio.
Un Virtual Host es un mecanismo que permite que una misma máquina esté asociada con distintos dominios o direcciones IP. De forma resumida, de esta forma Apache distingue el dominio o la IP solicitada, y redirecciona la petición para servir los ficheros desde distintos directorios.
Aunque permitir funcionar con distintos dominios sea su utilidad principal, en cualquier caso, configurar Virtual Host es una medida que favorece la mantenibilidad del sistema. Por tanto, es conveniente configurarlo aunque en un primer momento únicamente tengamos un dominio o dirección IP.
Crear directorio con los ficheros a servir
Crear un directorio para el contenido
En primer lugar, creamos un directorio donde almacenaremos los ficheros a servir, por ejemplo ‘/var/www/example.com/html’
sudo mkdir -p /var/www/example.com/html
A continuación, tenemos que conceder los permisos apropiados a esta nueva carpeta.
Conceder permisos
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www
Crear un fichero de prueba
A continuación, crearemos un fichero de ejemplo ‘index.html’ en el directorio que acabamos de crear
nano /var/www/example.com/html/index.html
Con el contenido,
<html>
<head>
<title>¡Hola mundo!</title>
</head>
<body>
<h1>Esta es tu pagina web. Enhorabuena!</h1>
</body>
</html>
Configurar el Virtual Host
Ahora, copiamos la configuración por defecto en nuevo fichero de configuración,
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Y editamos su contenido
sudo nano /etc/apache2/sites-available/example.com.conf
De forma que tenga la siguiente forma
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Habilitar/deshabilitar Virtual Host
Ahora, para activar nuestro Virtual Host usamos el comando ‘a2ensite’
sudo a2ensite example.com.conf
Si por el contrario queremos deshabilitar, usamos el comando ‘a2dissite’. Por ejemplo, para deshabilitar el servidor por defecto usamos
sudo a2dissite 000-default.conf
Reiniciar Apache
Finalmente, reinicamos Apache para que refleje los cambios realizados,
sudo systemctl restart apache2
¡Así de sencillo! Por supuesto, podríamos repetir el proceso con tantos dominios como fuera necesario. Y, cómo decíamos, es una medida que conveniente que deberíamos realizar en cualquier implantación de Apache.