Es parte del protocolo HTTP 1.1.
Específicamente, el protocolo HTTP 1.1 incluye un encabezado llamado "host:" que especifica a qué sitio web en un servidor en particular está intentando acceder el cliente.
Entonces, si snoopy.net y woodstock.org ambos comparten 192.0.32.10 y su navegador está tratando de obtener contenido de http://snoopy.net/doghouse
la solicitud http específica se vería así:
GET /doghouse HTTP/1.1
Host: snoopy.net
Si la URL deseada es http://woodstock.org/seeds
la solicitud se vería así
GET /seeds HTTP/1.1
Host: woodstock.org
En ambos casos, habría un socket tcp entre su computadora y el puerto 80 del servidor. El servidor sabría obtener contenido de /var/www/snoopy.net o /var/www/woodstock.org/ basado en el encabezado Host.
Habría otros encabezados para las cookies y otras cosas como el tipo de navegador y el contenido permitido, pero el encabezado "Host" es específicamente lo que permite al servidor web saber qué sitio web virtual se desea.
Hay más en el RFC2616 .
Esta es también la razón por la cual los sitios https * deben *** tener su propia dirección IP: el intercambio de claves SSL y la verificación del certificado tienen lugar antes de la transacción http, por lo que el servidor http no sabrá entregar el certificado de "Woodstock". org "o" snoopy.net "cuando recibe una conexión https en el puerto 443 de 192.0.32.10.
editar
** en los comentarios, Grawity señala que hay extensiones de SSL en la especificación TLS que permiten al servidor saber a qué sitio web está intentando acceder el usuario, y que la mayoría de los navegadores web modernos tienen estas extensiones, por lo que debe ser un poco demasiado fuerte.
Hay algo que todos los navegadores modernos envían junto con la solicitud, llamado "Host:" Encabezado.
La solicitud real que Firefox envía para esta página es:
Como puede ver, el
bit identifica el sitio web en cuestión.En IIS y Apache, puede configurar sitios web virtuales que solo aceptan solicitudes de una combinación específica de IP / host.
En cuanto a su problema particular, tendrá que leer cómo su empresa de alojamiento particular quiere que solicite la configuración.
fuente
La técnica para alojar más de un dominio / subdominio en una sola dirección IP / host se llama hosts virtuales . La solicitud http get contiene el nombre de dominio para el que las solicitudes permiten que el servidor web haga coincidir la solicitud con un dominio virtual particular.
Si tiene varios hosts físicos internamente con solo una IP externa, entonces querrá considerar la configuración de proxy inverso para reenviar las solicitudes a la máquina / dirección IP interna correcta.
fuente
La característica en su servidor web normalmente se llama 'hosts virtuales'. Una vez que apunte las entradas dns para que apunten a esa dirección IP (como se menciona en las otras respuestas), el servidor servirá los diferentes sitios dependiendo de cuál sea el host solicitado.
En cuanto a apuntar a otra caja va. Puede configurar redireccionamientos en la mayoría de los servidores web si espera obtener primero la consulta. Si está hablando de subdominios, todo lo que debe hacer es apuntar cada uno de los subdominios a una dirección IP diferente.
es decir, host.com -> IP 1 y luego www.host.com -> IP 2 y mail.host.com -> IP 3
Si desea respuestas más específicas, debe decir qué software de servidor web y qué sistema operativo está ejecutando.
Es posible que ServeFault sea un mejor lugar para esta pregunta.
fuente
En breve...
Uno: establezca las entradas DNS para sus diversos dominios para que todos apunten a su casilla.
Dos: según lo descrito por otros, configure su servidor web (no diga cuál) para que coincida con el nombre de host solicitado.
De esa manera, todas las solicitudes de todos sus dominios van a la misma máquina y su configuración toma el dominio solicitado y lo dirige a la carpeta correcta que contiene el contenido de ese sitio.
fuente
Su pregunta me parece que tiene un servidor físico separado para el segundo sitio web. En ese caso, no podrá utilizar una sola dirección IP para los dos servidores. Puede a) obtener una segunda dirección IP pública para su segundo host ob) configurar un proxy inteligente que reenvíe solicitudes a diferentes servidores en su red interna en función de los encabezados del host. Estoy bastante seguro de que b) es posible, pero no tengo una idea real de cómo funciona, por lo que tendrá que preguntarle a alguien más si eso es lo que está tratando de hacer.
fuente
Si estoy leyendo su pregunta correctamente, ¿tiene dos computadoras diferentes que comparten una dirección IP a través de NAT (Network Address Translation)? Si es así, tendrá que hacer que un sitio escuche en un puerto diferente (no 80); no sé de qué manera sé que el enrutador envíe solicitudes a diferentes computadoras en función de los metadatos HTTP "Host". Es mejor que obtenga una segunda dirección IP para su segundo servidor.
fuente