50% de descuento en todos los planes, por tiempo limitado. Desde $2.48/mo
13 min restantes
Web y aplicaciones de negocio

Cómo alojar varios sitios web en un solo servidor (Apache e IIS) 🌐

Lily Carnell By Lily Carnell 13 min de lectura Actualizado el 18 de sep. de 2023
Cómo alojar varios sitios web en un solo servidor (Apache e IIS) 🌐

Una vez que accedes a un alojamiento en línea, probablemente querrás saber cómo alojar varios sitios web en un mismo servidor. Aunque pueda parecer complicado al principio, a medida que profundices en el tema verás que es posible hacerlo con la ayuda de algunas guías técnicas.

Hay varios servidores web que ofrecen servicios gratuitos, de código abierto y ampliamente utilizados en todo el mundo. Antes de explicar cómo alojar varios sitios web en un mismo servidor, conviene entender qué es un servidor web y cómo funciona.

¿Qué es un servidor web?

Un servidor web almacena y sirve contenido para un sitio web: texto, imágenes, vídeo y datos de aplicaciones. Los clientes que solicitan ese contenido acceden a él a través del servidor web. El cliente más habitual es el navegador, que pide datos al sitio web cada vez que el usuario hace clic en un enlace o descarga un archivo.

Un servidor web se comunica con el navegador a través del Protocolo de Transferencia de Hipertexto (HTTP) La mayor parte del contenido de las páginas web está codificado en Lenguaje de Marcado de Hipertexto (HTML). El contenido puede ser estático, como texto e imágenes, o dinámico, como la lista de productos que un cliente ha marcado para comprar. La mayoría de los servidores web admiten lenguajes de scripting del lado del servidor para incorporar lógica de negocio en la comunicación y generar contenido dinámico. Entre los lenguajes habituales se encuentran Active Server Pages (ASP), JavaScript, PHP, Python y Ruby.

¿Cómo funciona un servidor web?

Los servidores web funcionan según un modelo cliente-servidor . En esta estructura, el cliente solicita un recurso o servicio al servidor.

Para atender las peticiones de los clientes web, el servidor sigue varios pasos:

  1. Cuando un usuario quiere cargar contenido en el sitio web, el navegador solicita acceso («Solicitud HTTP) a través de internet.
  2. El navegador web busca la dirección IP del sitio solicitado. Para ello, traduce el URL de las páginas web usando el Sistema de Nombres de Dominio (DNS) o consultando su caché. Este proceso permite localizar el servidor web donde están alojados los archivos del sitio.
  3. En este punto, el servidor web recibe la solicitud HTTP y la procesa a través de su servidor HTTP.
  4. Una vez que el servidor HTTP acepta la solicitud, busca en los archivos del servidor para obtener los datos correspondientes.
  5. El servidor web devuelve los archivos del sitio al navegador que realizó la solicitud. A continuación, el usuario ve el contenido del sitio web.

Ten en cuenta que si el servidor HTTP no encuentra o no puede procesar los archivos solicitados, verás un mensaje de error en el navegador. Ahora que conoces los conceptos principales de los servidores web, también puedes aprender fácilmente cómo alojar varios sitios en un mismo servidor. 

Alojar varios sitios web en un mismo servidor: Apache

Si quieres alojar más de un sitio en un servidor, debes usar los archivos de host virtual de Apache para indicar qué dominio debe utilizarse. Uno de los métodos empleados para resolver las solicitudes de sitios se denomina Hosts virtuales basados en nombre. Cuando alguien visita tu sitio, la solicitud llega al servidor, que determina qué archivos servir según el nombre de dominio. Esta técnica te permite alojar varios sitios en un mismo servidor con la misma IP. En este artículo se explica cómo configurar el archivo de host virtual para cada uno de tus dominios. Antes de entrar en detalles, recuerda que debes iniciar sesión como usuario root.

Leer también:Alojamiento Linux vs Windows: ¿cuál es mejor para ti?

Paso 1: Crea un directorio para cada sitio

Primero instala apache2 con este comando

Para sistemas basados en Debian

apt install apache2 -y

Para sistemas basados en CentOS

yum install apache2 -y

Debes crear un directorio para cada sitio que vayas a alojar (dentro de la carpeta /var/www). Usa domain.com y domain2.com como nombres de dominio de ejemplo.

mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html

Paso 2: Configura los permisos de las carpetas

chmod -R 755 /var/www

Paso 3: Configuración de una página de inicio

Para mostrar una página de inicio, asegúrate de que el archivo index.html esté creado para cada dominio. Puedes incluir algo tan sencillo como pruebas para domain.com en este archivo.

vim /var/www/domain.com/public_html/index.html

pruebas para domain.com

Ahora guarda los cambios y sal usando Escapar y escribiendo: wq

Puedes usar el siguiente comando para repetir todos estos pasos con tu segundo dominio.

vim /var/www/domain2.com/public_html/index.html

Paso 4: Copia el archivo de configuración para cada sitio

Debes copiar el archivo de configuración predeterminado para cada sitio, de modo que siempre tengas una copia de respaldo para crear sitios en el futuro.

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf

Paso 5: Edita el archivo de configuración para cada sitio

Como mínimo, deberás modificar y añadir las líneas resaltadas dentro de las etiquetas <VirtualHost *:80> y </VirtualHost>.

Ten en cuenta que ServerAlias es el nombre alternativo de tu dominio. En la mayoría de los casos, se añade www delante del nombre de dominio para que los usuarios puedan acceder al sitio tanto con www como sin ella (ServerName).

vim /etc/apache2/sites-available/domain.com.conf

Información del sitio
Información del sitio

Guarda y cierra el archivo con wq. Repite este proceso para tu archivo domain2.com.conf ; asegúrate de actualizar el ServerName, ServerAlias, y DocumentRoot para tu segundo dominio.

Leer también:Apache vs NGINX

 Paso 6: Activar el archivo de configuración

Por defecto, tu servidor lee el archivo 000-default.conf. Sin embargo, en el paso anterior creamos un archivo de configuración nuevo para cada dominio. Por eso, necesitas deshabilitar el archivo predeterminado y activar el que corresponde a la nueva configuración.

a2dissite 000-default.conf

Para que el servidor reconozca tus dominios, habilita cada uno de los archivos .conf que acabas de crear.

a2ensite domain.com.conf
a2ensite domain2.com.conf

Ahora reinicia Apache para aplicar los cambios.

systemctl restart apache2

Paso 7: Verificar las configuraciones Apache

Una vez iniciado Apache, puedes comprobar que la configuración funciona correctamente editando tu archivo /etc/host en tu equipo o el DNS de tu dominio.

Una vez configurados todos los aspectos, puedes visitar tu sitio web en un navegador para ver las páginas index.html creadas en el paso 3.

Ver también: En las instalaciones vs. en la nube

Alojar varios sitios web en un servidor: IIS

Podemos usar un servidor web IIS (Internet Information Services) para decenas o incluso cientos de sitios web. Puedes alojar múltiples sitios en él, escuchando y respondiendo en el mismo Puerto TCP. Sin embargo, el gestor de IIS permite alojar varios sitios web sin necesidad de asignarles un puerto alternativo como el 8080. En esta sección se explica cómo alojar múltiples sitios web en el mismo servidor IIS, ya sea vinculándolos al mismo puerto y dirección IP, o a direcciones IP distintas.

¿Cómo instalar IIS en un servidor Windows?

Cuando instalas IIS en Windows, se crea un sitio web predeterminado vacío que escucha en el puerto web estándar HTTP - TCP 80. En términos técnicos, nuestro sitio está vinculado al puerto TCP/80. Para abrirlo, debemos introducir el nombre del servidor IIS ("http://web-srv1") o su dirección IP ("http://192.168.1.100") en el navegador.

Paso 1: Vincular el sitio web de IIS 

Un servidor web IIS en Windows Server te permite alojar varios sitios web. Sin embargo, IIS solo distribuye correctamente las solicitudes HTTP si cada sitio web tiene un identificador único. Para ello, IIS utiliza tres atributos que, combinados, identifican de forma única cada sitio web:

  • un número de puerto TCP
  • una dirección IP
  • una cabecera de host (hostname)

La información sobre los sitios web alojados se almacena en el ServerBindings atributo de IIS Metabase, cuyo formato es el siguiente: IP:Puerto:Nombre de host. Por eso, si quieres alojar varios sitios web en un mismo servidor (mismo puerto y dirección IP), necesitas usar un cabecera Host única.

Quizás te preguntes: ¿qué es un host header? Un host header es parte de una solicitud HTTP al servidor que indica a qué sitio web va dirigida. Por eso, debemos configurar este host header en el lado del servidor web. Ten en cuenta que el DNS debe tener el registro correcto que asocie el nombre de host con la dirección IP del servidor web IIS.

Supongamos que tienes un sitio web funcionando en el servidor IIS y escuchando en el puerto 80. ¿Qué hacer cuando queremos vincular un segundo sitio web al mismo puerto?

Paso 2: Vincular el segundo sitio web en IIS

En el Administrador de Servicios de Internet (IIS), crea un nuevo sitio web desde la ventana Agregar sitio web y asígnale el nombre TestSite; la ruta de este sitio será C:\inetpub\TestSite. Por ahora, deja el nombre de host en blanco.

Después de copiar el contenido del sitio en C:\inetpub\TestSite abre el Administrador de Internet Information Services (IIS) y, en el nombre de host del servidor, agrega el sitio para que se abra el asistente de configuración.

hostwebsites.png

agregar-nuevo-sitio-iis
Ventana para añadir sitio web

 

Después de hacer clic en Aceptar, verás un mensaje de advertencia indicando que no puedes usar binding *:80 para ambos sitios web.

Agregar sitio web

el enlace de puerto 80 está asignado a otro sitio
Verificar binding

Al aceptar esta advertencia, tendrás otro sitio vinculado al puerto 80. Por eso, no podrás iniciarlo sin detener el primer sitio web. La siguiente imagen lo explica con más claridad.

4 Asignar un puerto de binding distinto a cada sitio web
Asignar un puerto de binding distinto a cada sitio web

windows-original-vps Hosting Windows VPS

Descubre nuestros planes de hosting Windows VPS a precios accesibles, con hardware potente, latencia mínima y un Windows gratis a tu elección.

Consigue tu Windows gratis

Alojar varios sitios web en IIS mediante cabeceras de host

Debes elegir otro nombre (Host Name) para el segundo sitio IIS y así crear un binding único. Para ello, haz clic derecho en TestSite y selecciona Editar Bindings. Selecciona el binding que necesitas y haz clic en Editar.

Como se muestra en la siguiente imagen, hay que especificar el hostname único al que accederá el usuario. En este tutorial usamos TestSite, así que escríbelo en el campo Hostname.

test-iis-site-binding
Ventana de edición del binding del sitio

Puedes usar el símbolo del sistema para configurar el binding del sitio IIS. Si usas IIS 7 o una versión posterior, verás algo como esto al ejecutar el comando de configuración del binding:

C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']

Al igual que con el primer sitio web, también puedes iniciar el segundo.

start-iis-site
Gestionar sitios web

En este punto, debes añadir un alias DNS para el servidor (A o CNAME) que apunte a la dirección IP o el nombre de host de tu servidor web IIS. Si usas un dominio de Active Directory, necesitas crear registros DNS en el controlador de dominio. IIS te permite crear un CNAME registro para el nombre TestSite en la consola de DNS (dnsmgmt.msc) y establecer el nombre de dominio de tu servidor IIS como host de destino FQDN.

creando un registro CNAME para el nombre TestSite en la consola de DNS
creando un registro CNAME para el nombre TestSite en la consola de DNS

También puedes crear este registro DNS mediante PowerShell con el siguiente comando:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com

Intentemos abrir http://TestSite en el navegador. Si todo está configurado correctamente, debería abrirse sin problemas.

múltiples-sitios-iis-en-el-mismo-puerto-http-80
Resultado final de TestSite

 

linux-vps Hosting con Linux, sin complicaciones

¿Buscas una forma mejor de alojar tus sitios web y aplicaciones? ¿Estás desarrollando algo nuevo? ¿Simplemente no te convence Windows? Para eso existe Linux VPS.

Obtén tu Linux VPS

Ejecutar varios sitios con distintas direcciones IP en IIS

Ahora veamos cómo ejecutar dos sitios en el servidor web IIS con diferentes direcciones IP. Primero, debes añadir una interfaz VLAN independiente en el servidor Windows o asignar una dirección IP adicional (alias) a la NIC.

En este tutorial, el servidor tiene la dirección IP principal 192.168.13.100, y añadiremos el alias IP 192.168.13.101 al mismo adaptador de red:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True

Ahora debes crear un registro A para tu nuevo sitio en el servidor DNS:

Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr

Solo queda abrir la configuración de enlaces del sitio y vincular el sitio a la dirección IP adicional de tu host. Puedes gestionar los enlaces de sitios en un servidor IIS mediante PowerShell. Para ello, se utiliza el módulo WebAdministration:

Import-Module WebAdministration

Puedes ver información completa sobre todos los sitios IIS disponibles y sus enlaces:

Get-IISSite

O solo sobre un sitio concreto:

(Get-Website -Name NewSite).bindings.Collection

bindings.Collection

Usa el siguiente comando para cambiar el enlace de este sitio; ten en cuenta que permite modificar las direcciones IP, el puerto o el nombre:

Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'

Puedes ejecutar este comando para añadir un nuevo enlace a un sitio IIS específico:

New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http

Para eliminar un enlace, usa el siguiente comando:

Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"

Como has visto, puedes ejecutar varios sitios web en el servidor web IIS tanto con diferentes direcciones IP como con la misma dirección IP y número de puerto TCP.

Conclusión: alojar varios sitios web en un mismo servidor

 Este artículo se centró principalmente en los conceptos fundamentales de los servidores, y te explicó cómo alojar varios sitios web en un único servidor. También ofrecemos múltiples soluciones de Linux VPS alojamiento que puedes usar para ejecutar diferentes sitios web en un mismo servidor. Los planes de Cloudzy reducen el coste de mantener varios servidores, y además puedes aprovechar nuestros servicios a tu favor. Asimismo, puedes ampliar fácilmente los recursos de tu servidor, incluidos RAM, almacenamiento, procesador y ancho de banda.

Preguntas frecuentes

 

¿Se pueden tener varios sitios web en un solo servidor de alojamiento?

Si dispones de un servidor con amplios recursos, como suficiente espacio HDD, RAM y potencia de CPU, puedes alojar varios sitios web mediante hosting virtual. No hay límite en el número de sitios web que puedes alojar en tu servidor.

¿Cómo ejecutar dos sitios web en un mismo servidor?

Alojar varios sitios web en un único servidor web se conoce como Servidor Virtual. Asegúrate de que el servidor que elijas tenga recursos suficientes para gestionar el tráfico y los requisitos de almacenamiento.

¿Para qué se usa un servidor VPS?

VPS es un servicio de alojamiento que te proporciona recursos dedicados (privados) en un servidor. Ten en cuenta que VPS ofrece una solución más segura y estable que el alojamiento compartido, que no te garantiza un espacio exclusivo en el servidor.

¿Por qué se usa VPS?

El alojamiento VPS se ha convertido en una opción muy popular porque suele costar menos que el alojamiento dedicado y, al mismo tiempo, ofrece mayor fiabilidad, seguridad y rendimiento que el alojamiento compartido.

Compartir

Más del blog

Sigue leyendo.

Imagen destacada de la reseña de Odoo con un titular grande a la izquierda y el logotipo de Odoo a la derecha, rodeada de paneles de interfaz flotantes sobre un fondo de nubes en tonos violeta suave.
Web y aplicaciones de negocio

Una reseña completa de Odoo: ¿Es Odoo el ERP adecuado para tu empresa?

Odoo es una de las plataformas ERP más consideradas por empresas en crecimiento, y la razón es sencilla: promete cubrir muchas necesidades en un solo lugar. Ventas, contabilidad, inventario

Jim SchwarzJim Schwarz 11 min de lectura
Imagen destacada de alternativas de código abierto a WordPress con fondo de degradado de colores, monitor de escritorio, editor de código, vista previa de panel difuminada y un titular grande a la izquierda.
Web y aplicaciones de negocio

Las mejores alternativas de código abierto a WordPress para desarrolladores

WordPress sigue siendo relevante y funciona bien para una gran variedad de sitios. Su directorio de plugins alberga más de 62.000 y su directorio de temas ofrece más de 14.000 temas gratuitos. Eso

Jim SchwarzJim Schwarz 14 min de lectura
Imagen destacada de Automad vs. WordPress con los logotipos de ambas plataformas y un titular que pregunta qué CMS deben elegir los desarrolladores.
Web y aplicaciones de negocio

Automad vs. WordPress: una comparativa detallada entre dos de las mejores plataformas CMS

Automad y WordPress resuelven el mismo problema de formas muy distintas. Automad es un CMS de archivos planos y motor de plantillas, por lo que el contenido vive en archivos en lugar de en una base de datos; WordPress,

Jim SchwarzJim Schwarz 9 min de lectura

¿Listo para desplegar? Desde 2,48 $/mes.

Cloud independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. 14 días de garantía de devolución.