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/htmlA 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/wwwCrear 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.htmlCon 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.confY editamos su contenido
sudo nano /etc/apache2/sites-available/example.com.confDe forma que tenga la siguiente forma
<VirtualHost *:80>
ServerAdmin [email protected]
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.confSi por el contrario queremos deshabilitar, usamos el comando ‘a2dissite’. Por ejemplo, para deshabilitar el servidor por defecto usamos
sudo a2dissite 000-default.confReiniciar 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.
