Virtualhosts
Un VirtualHost (o servidor virtual) es un concepto utilizado en servidores web para permitir la configuración de varios sitios web en una única instancia del servidor.
La necesidad de VirtualHosts surge porque un servidor web puede tener múltiples sitios web alojados en la misma dirección IP, y es necesario diferenciar entre ellos para dirigir correctamente las solicitudes entrantes. Como ya sabrás, hay dos tipos de Vhost:
Basados en dominios
Basados en IPs.
Recuerda que en el contexto de http, cada bloque server, como hemos visto, implica un VirtualHost.

Vamos a configurar un virtualhost de cero en nginx:
Paso 1: Crear el directorio del sitio web
Primero, deberás crear un directorio para almacenar los archivos de tu sitio web:
sudo mkdir -p /var/www/alex.com/html
sudo chmod -R 755 /var/www/alex.com
Paso 2: Asignar propiedad del directorio
Asegúrate de que el directorio pertenece al usuario correcto:
sudo chown -R $USER:$USER /var/www/alex.com/html
Paso 3: Crear un archivo de configuración de Nginx
Crea un nuevo archivo de configuración para tu virtual host:
sudo nano /etc/nginx/sites-available/alex.com
Incluye la siguiente configuración básica:
server {
#Puerto de escucha, por ahora HTTP
#Otro ejemplo -> listen 127.0.0.1:8080;
listen 80;
#Nombre del servidor + www
server_name alex.com www.alex.com;
#Localización de los archivos web antes creados y del nombre concreto de la pagina de inicio
location / {
root /var/www/alex.com/html;
index index.html index.htm;
}
#Configuración de páginas de error (opcional)
error_page 404 /404.html;
location = /404.html {
root /var/www/alex.com/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/alex.com/html;
}
}
Recuerda que la diferencia entre el "-available
" y el "-enabled
" es que en un lado tienen que ir los que quieras guardar y en el otro los que deben estar activos, respectivamente, siendo este ultimo el que recoge los enlaces simbólicos.
Paso 4: Habilitar el archivo de configuración
Habilita tu virtual host creando un enlace simbólico:
sudo ln -s /etc/nginx/sites-available/alex.com /etc/nginx/sites-enabled/
Paso 5: Probar la configuración de Nginx
Antes de reiniciar Nginx, prueba tu configuración para asegurarte de que no haya errores de sintaxis:
sudo nginx -t
Paso 6: Reiniciar Nginx
Finalmente, reinicia Nginx para aplicar los cambios:
sudo systemctl restart nginx
Paso 7: Editar el archivo hosts local (opcional)
Si aún no has configurado DNS, puedes editar el archivo hosts
de tu equipo local para probar el virtual host:
# Añadir esta línea a /etc/hosts en sistemas Unix o
# C:\Windows\System32\Drivers\etc\hosts en Windows
127.0.0.1 tudominio.com
Con estos pasos, tendrás tu VirtualHost para tudominio.com
corriendo en Nginx.
Última actualización