
Como posso ter isso onde tenho um endereço IP que fica na Internet, mas muitos nomes da web? Por exemplo, quando uma empresa de hospedagem tem um IP compartilhado, mas recebo nomes de domínio ilimitados (junto com todos os outros naquela caixa).
Eu tenho uma caixa na Internet, mas quero apontar para outra máquina que contém um site diferente quando alguém digita um www diferente... (está bem ao lado dela, em uma caixa diferente). Isso é tudo subdomínio? Obrigado.
Eu sou a empresa de hospedagem
Responder1
Faz parte do protocolo HTTP 1.1.
Especificamente, o protocolo HTTP 1.1 inclui um cabeçalho chamado “host:” que especifica qual site em um determinado servidor o cliente está tentando acessar.
Portanto, se snoopy.net e woodstock.org compartilharem 192.0.32.10 e seu navegador estiver tentando obter conteúdo da http://snoopy.net/doghouse
solicitação http específica, seria assim:
GET /doghouse HTTP/1.1
Host: snoopy.net
Se o URL desejado for http://woodstock.org/seeds
a solicitação seria semelhante a
GET /seeds HTTP/1.1
Host: woodstock.org
Em ambos os casos, haveria um soquete TCP entre o seu computador e a porta 80 do servidor. O servidor saberia obter conteúdo de /var/www/snoopy.net ou /var/www/woodstock.org/ com base no cabeçalho Host.
Haveria outros cabeçalhos para cookies e outras coisas como tipo de navegador e conteúdo permitido, mas o cabeçalho "Host" é especificamente o que permite ao servidor web saber qual site virtual é desejado.
Tem mais noRFC2616.
É também por isso que sites httpsdeve** têm seu próprio endereço IP - a troca de chaves SSL e a verificação do certificado ocorrem antes da transação http, então o servidor http não saberá fornecer o certificado para "woodstock.org" ou "snoopy.net" quando ele recebe uma conexão https na porta 443 de 192.0.32.10.
editar
** nos comentáriosGravidaderessalta que existem extensões para SSL nas especificações TLS que permitem ao servidor saber qual site o usuário está tentando acessar e que a maioria dos navegadores modernos possui essas extensões, portantodeveé um pouco forte demais.
Responder2
Existe algo que todos os navegadores modernos enviam junto com a solicitação, chamado de cabeçalho "Host:".
A solicitação real que o Firefox envia para esta página é:
Anfitrião: superuser.com Agente do usuário: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729) Aceitar: text/html,application/xhtml+xml,application/xml;q=0,9,*/*;q=0,8 Idioma de aceitação: en-us,en;q=0,5 Aceitar codificação: gzip,deflate Conjunto de caracteres de aceitação: ISO-8859-1,utf-8;q=0,7,*;q=0,7 Keep-Alive: 300 Conexão: keep-alive
Como você pode ver, o
Anfitrião: superuser.combit identifica o site em questão.
No IIS e no Apache, você pode configurar sites virtuais que aceitam apenas solicitações de uma combinação específica de IP/Host.
Quanto ao seu problema específico, você terá que ler como sua empresa de hospedagem específica deseja que você solicite a configuração.
Responder3
A técnica para hospedar mais de um domínio/subdomínio em um único endereço IP/host é chamadahosts virtuais. A solicitação http get contém o nome de domínio ao qual as solicitações se destinam, o que permite ao servidor da web combinar a solicitação com um domínio virtual específico.
Se você tiver vários hosts físicos internamente com apenas um IP externo, então você vai querer configurarproxy reversopara encaminhar as solicitações para o endereço IP interno/máquina correto.
Responder4
Resumidamente...
Um - Defina as entradas DNS de seus vários domínios para que apontem para sua caixa.
Dois - Conforme descrito por outros, configure seu servidor web (você não diz qual) para corresponder ao nome do host solicitado.
Dessa forma, todas as solicitações de todos os seus domínios vão para a mesma máquina e sua configuração pega o domínio solicitado e o encaminha para a pasta correta que contém o conteúdo desse site.