Hospedagem virtual - Virtual hosting

A hospedagem virtual é um método para hospedar vários nomes de domínio (com tratamento separado de cada nome) em um único servidor (ou pool de servidores). Isso permite que um servidor compartilhe seus recursos, como memória e ciclos do processador, sem exigir que todos os serviços fornecidos usem o mesmo nome de host. O termo hospedagem virtual é geralmente usado em referência a servidores da web, mas os princípios são transportados para outros serviços da Internet .

Um aplicativo amplamente utilizado é a hospedagem compartilhada na web . O preço da hospedagem compartilhada na web é menor do que o de um servidor web dedicado porque muitos clientes podem ser hospedados em um único servidor. Também é muito comum que uma única entidade queira usar vários nomes na mesma máquina para que os nomes possam refletir os serviços oferecidos, em vez de onde esses serviços estão hospedados.

Existem dois tipos principais de hospedagem virtual, baseada em nome e baseada em IP. A hospedagem virtual baseada em nome usa o nome do host apresentado pelo cliente. Isso economiza endereços IP e a sobrecarga administrativa associada, mas o protocolo que está sendo servido deve fornecer o nome do host em um ponto apropriado. Em particular, existem dificuldades significativas no uso de hospedagem virtual baseada em nomes com SSL / TLS . A hospedagem virtual baseada em IP usa um endereço IP separado para cada nome de host e pode ser realizada com qualquer protocolo, mas requer um endereço IP dedicado por nome de domínio servido. A hospedagem virtual baseada em porta também é possível em princípio, mas raramente é usada na prática porque não é amigável para os usuários.

A hospedagem virtual baseada em nome e IP pode ser combinada: um servidor pode ter vários endereços IP e servir vários nomes em alguns ou todos esses endereços IP. Essa técnica pode ser útil ao usar SSL / TLS com certificados curinga. Por exemplo, se um operador de servidor tivesse dois certificados, um para * .example.com e outro para * .example.net, o operador poderia servir foo.example.com e bar.example.com com o mesmo endereço IP, mas precisaria um endereço IP separado para baz.example.net.

Com base no nome

Os hosts virtuais baseados em nome usam vários nomes de host para o mesmo endereço IP .

Um pré-requisito técnico necessário para hosts virtuais baseados em nome é um navegador da web com suporte HTTP /1.1 (comum hoje) para incluir o nome do host de destino na solicitação. Isso permite que um servidor que hospeda vários sites por trás de um endereço IP entregue o conteúdo correto do site. Mais especificamente, significa definir o cabeçalho Host HTTP , que é obrigatório no HTTP / 1.1.

Por exemplo, um servidor pode estar recebendo solicitações para dois domínios, www.example.com e www.example.net , sendo que ambos resolvem para o mesmo endereço IP. Para www.example.com , o servidor enviaria o arquivo HTML do diretório / var / www / user / Joe / site / , enquanto as solicitações para www.example.net faria com que o servidor exibisse páginas de / var / www / user / Mary / site / . Da mesma forma, dois subdomínios do mesmo domínio podem ser hospedados juntos. Por exemplo, um servidor de blog pode hospedar blog1.example.com e blog2.example.com.

O maior problema com a hospedagem virtual baseada em nome é que é difícil hospedar vários sites seguros executando SSL / TLS . Como o handshake SSL / TLS ocorre antes que o nome do host esperado seja enviado ao servidor, o servidor não sabe qual certificado apresentar no handshake. É possível que um único certificado cubra vários nomes por meio do campo "subjectaltname" ou por meio de curingas, mas a aplicação prática dessa abordagem é limitada por considerações administrativas e pelas regras de correspondência para curingas. Há uma extensão para TLS chamada Server Name Indication , que apresenta o nome no início do handshake para contornar esse problema, exceto para alguns clientes mais antigos (em particular o Internet Explorer no Windows XP ou versões mais antigas do Android ) que não implementam SNI .

Além disso, se o Sistema de Nomes de Domínio (DNS) não estiver funcionando corretamente, será difícil acessar um site hospedado virtualmente, mesmo que o endereço IP seja conhecido. Se o usuário tentar voltar a usar o endereço IP para entrar em contato com o sistema, como em http://10.23.45.67/ , o navegador da web enviará o endereço IP como o nome do host. Como o servidor da web depende do cliente do navegador da web para informá-lo sobre o nome do servidor (vhost) a ser usado, o servidor responderá com um site da Web padrão - geralmente não o site que o usuário espera.

Uma solução alternativa neste caso é adicionar o endereço IP e o nome do host ao arquivo de hosts do sistema cliente . Acessar o servidor com o nome de domínio deve funcionar novamente. Os usuários devem ter cuidado ao fazer isso, no entanto, pois quaisquer alterações no verdadeiro mapeamento entre o nome do host e o endereço IP serão substituídas pela configuração local. Esta solução alternativa não é realmente útil para um usuário comum da web, mas pode ser útil para um administrador de site ao corrigir os registros DNS.

Baseado em IP

Quando a hospedagem virtual baseada em IP é usada, cada site (um nome de host DNS ou um grupo de nomes de host DNS que agem da mesma forma) aponta para um endereço IP exclusivo. O servidor da web é configurado com várias interfaces de rede física, interfaces de rede virtuais na mesma interface física ou vários endereços IP em uma interface. O servidor da web pode abrir soquetes de escuta separados para cada endereço IP ou pode escutar em todas as interfaces com um único soquete e obter o endereço IP em que a conexão TCP foi recebida após aceitar as conexões. De qualquer forma, ele pode usar o endereço IP para determinar qual site servir. O cliente não está envolvido neste processo e, portanto (ao contrário da hospedagem virtual baseada em nome), não há problemas de compatibilidade.

A desvantagem dessa abordagem é que o servidor precisa de um endereço IP diferente para cada site. Isso aumenta a sobrecarga administrativa (tanto atribuindo endereços a servidores quanto justificando o uso desses endereços para registros da Internet) e contribui para o esgotamento dos endereços IPv4 .

Baseado em porta

O número da porta padrão para HTTP é 80. No entanto, a maioria dos servidores web pode ser configurada para operar em quase qualquer número de porta, desde que o número da porta não esteja em uso por nenhum outro programa no servidor. Existe a porta especial 443 HTTP Secure que precisa de configuração especial (consulte a indicação do nome do servidor ). Os sites baseados em portas são explicitamente vinculados a um número de porta exclusivo e a um endereço IP. Nesse caso, o endereço IP é usado para hospedar vários sites da web. O número de porta exclusivo usado para um endereço IP comum distingue um site individual de outros sites vinculados ao mesmo endereço IP.

Usos

A hospedagem virtual na web é frequentemente usada em grande escala em empresas cujo modelo de negócios é fornecer hospedagem de sites de baixo custo para os clientes. A grande maioria dos sites de clientes de serviços de hospedagem na web em todo o mundo são hospedados em servidores compartilhados , usando tecnologia de hospedagem virtual.

Muitas empresas utilizam servidores virtuais para fins internos, onde há uma razão tecnológica ou administrativa para operar vários sites separados, como um site de extranet de cliente, extranet de funcionário , intranet interna e intranets para diferentes departamentos. Se não houver problemas de segurança nas arquiteturas do site, eles podem ser integrados em um único servidor usando tecnologia de hospedagem virtual, o que reduz a sobrecarga administrativa e de gerenciamento e o número de servidores separados necessários para dar suporte aos negócios.

Veja também

Referências

links externos