Page cover

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.

Nginx serverhosts

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:

Paso 2: Asignar propiedad del directorio

Asegúrate de que el directorio pertenece al usuario correcto:

Paso 3: Crear un archivo de configuración de Nginx

Crea un nuevo archivo de configuración para tu virtual host:

Incluye la siguiente configuración básica:

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.

Para ser mas ordenado resulta útil crear archivos de configuración dentro de una carpeta sites-enabled dentro de nginx y, con la directiva include añadir el archivo de configuración correspondiente al Vhost que quieras.

Para ello:

  1. Configura la directiva include en nginx.conf: En el archivo principal de configuración de Nginx (nginx.conf), configura la directiva include para cargar todas las configuraciones de VirtualHost desde el directorio sites-enabled. Esto se hace dentro del bloque http en el archivo nginx.conf.

  1. Una vez creado el archivo, lo referenciamos en el virtualhost

Paso 4: Habilitar el archivo de configuración

Habilita tu virtual host creando un enlace simbólico:

Si quisiéramos ahora "desactivar" un sitio, simplemente eliminaríamos el enlace simbólico en sites-enabled:

Reiniciamos el servicio y listo.

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:

Paso 6: Reiniciar Nginx

Finalmente, reinicia Nginx para aplicar los cambios:

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:

Con estos pasos, tendrás tu VirtualHost para tudominio.com corriendo en Nginx.

Última actualización