Glosario

Qué es un Virtual Host: definición y cómo funciona en Apache

Un virtual host es una configuración de servidor que permite alojar múltiples sitios web en una sola máquina, asignando a cada dominio su propio espacio y comportamiento.

A person pointing at an open book on a desk, focusing on learning.

Un virtual host (o host virtual) es una configuración que le dice al servidor web cómo atender solicitudes para distintos dominios o subdominios que residen en una misma máquina. En otras palabras, un solo servidor puede responder a ejemplo1.com, ejemplo2.com y tienda.ejemplo3.com como si cada uno tuviera su propio equipo dedicado.

Esto es la base del hosting compartido: decenas o cientos de sitios conviven en el mismo servidor físico gracias a los virtual hosts.

Por qué existen los virtual hosts

Antes de que los virtual hosts se generalizaran, cada dominio requería su propia dirección IP y, con frecuencia, su propio servidor. Eso encarecía el alojamiento de forma significativa.

Con los virtual hosts, un administrador de sistemas puede:

  • Alojar cientos de dominios en un solo servidor.
  • Aislar los archivos, logs y errores de cada sitio.
  • Aplicar configuraciones de seguridad o rendimiento por dominio.
  • Reducir costos de infraestructura sin sacrificar flexibilidad.

Es una de las razones por las que el glosario de hosting considera los virtual hosts un concepto fundamental para cualquier desarrollador o dueño de sitio web.

Los dos tipos de virtual host en Apache

Apache HTTP Server — el servidor web más extendido en el mundo Linux — admite dos variantes principales:

1. Virtual hosts basados en nombre (Name-based)

Es el método dominante hoy en día. El servidor usa el encabezado HTTP Host: que el navegador envía en cada petición para decidir qué sitio mostrar.

Un bloque típico en Apache luce así:

<VirtualHost *:80>
    ServerName ejemplo1.com
    ServerAlias www.ejemplo1.com
    DocumentRoot /var/www/ejemplo1
    ErrorLog /var/log/apache2/ejemplo1-error.log
</VirtualHost>

Con una sola dirección IP puedes tener tantos virtual hosts como necesites. Cada dominio simplemente apunta al mismo servidor vía DNS.

2. Virtual hosts basados en IP (IP-based)

Cada dominio recibe su propia dirección IP. Apache escucha en interfaces distintas y despacha el tráfico según la IP de destino, sin necesitar el encabezado Host:.

Este método se usa cuando:

  • Se necesita SSL/TLS con un certificado por IP (caso más raro hoy con SNI).
  • Se quiere total aislamiento de red entre sitios.
  • El cliente antiguo no envía correctamente el encabezado Host:.

En la práctica moderna, los name-based virtual hosts con SNI (Server Name Indication) cubren casi todos los escenarios, incluido HTTPS.

Cómo Apache decide qué virtual host usar

El flujo es sencillo:

  1. El navegador resuelve el dominio vía DNS y obtiene la IP del servidor.
  2. El navegador abre una conexión TCP al servidor y envía la petición HTTP con el encabezado Host: ejemplo1.com.
  3. Apache recorre su lista de virtual hosts buscando una coincidencia en ServerName o ServerAlias.
  4. Si encuentra una coincidencia, sirve el contenido desde el DocumentRoot definido.
  5. Si no encuentra ninguna, Apache responde con el primer virtual host definido (el predeterminado).

Por eso conviene definir siempre un virtual host "catch-all" al inicio de la configuración para capturar solicitudes a IPs o dominios no reconocidos.

Virtual hosts y HTTPS: el papel de SNI

Durante años, HTTPS y name-based virtual hosts no se llevaban bien: el servidor necesitaba saber el dominio antes de presentar el certificado, pero el encabezado Host: viaja cifrado.

SNI (Server Name Indication) resolvió esto. El cliente incluye el nombre del servidor en el saludo TLS, antes del intercambio de claves. Así Apache puede seleccionar el certificado correcto para cada dominio sin requerir una IP por sitio.

Todos los navegadores modernos soportan SNI, por lo que hoy es completamente viable tener múltiples virtual hosts HTTPS en una sola IP.

Diferencia entre virtual host y hosting compartido

Concepto Virtual host Hosting compartido
Qué es Configuración de Apache/Nginx Servicio comercial de alojamiento
Nivel Técnico (servidor) Producto para el usuario final
Relación Mecanismo interno Usa virtual hosts internamente
Quién lo configura Administrador de sistemas Panel de control (cPanel, Plesk)

Cuando contratas un plan de hospedaje web profesional, el proveedor crea y gestiona los virtual hosts por ti a través del panel de control.

Conclusiones clave

  • Un virtual host permite que un solo servidor atienda múltiples dominios de forma independiente.
  • Apache admite dos tipos: basados en nombre (los más comunes) y basados en IP.
  • El encabezado HTTP Host: es el mecanismo que Apache usa para seleccionar el virtual host correcto.
  • SNI hace posible HTTPS con múltiples dominios en una sola IP.
  • El hosting compartido comercial funciona gracias a los virtual hosts configurados automáticamente por el panel.

Si quieres migrar, crear o auditar la configuración de tus sitios, el equipo de elenlace.com puede ayudarte a diseñar una arquitectura de hosting a medida.

Preguntas frecuentes

¿Puedo tener virtual hosts con diferentes versiones de PHP?

Sí. Con PHP-FPM, cada virtual host puede apuntar a un socket diferente, cada uno ejecutando una versión distinta de PHP. Esto es común en servidores de agencias que gestionan clientes con requisitos distintos.

¿Los virtual hosts afectan el rendimiento del servidor?

El overhead de parsear los virtual hosts es mínimo. El factor de rendimiento real es cuántos recursos (CPU, RAM, ancho de banda) comparten los sitios alojados, no la cantidad de bloques de configuración.

¿Es posible usar virtual hosts en Windows con IIS?

Sí. En IIS se llaman sitios y se configuran con encabezados de host. El concepto es idéntico; la sintaxis y la interfaz de administración son distintas.

¿Qué pasa si dos virtual hosts tienen el mismo ServerName?

Apache usa el primero que encuentra en el orden de lectura de los archivos de configuración. Tener duplicados provoca comportamiento impredecible y debe evitarse siempre.

Para saber más

Otros proveedores y guías que vale la pena comparar:

← Todos