Como apontar 2 domínios diferentes para 1 endereço IP (Apache)?

9

Eu tenho dois nomes de domínio diferentes, que quero hospedar na mesma hospedagem privada que tenho. Eu quero que eles apontem para o mesmo endereço IP e ainda tenham conteúdo diferente (é claro). Como eu posso fazer isso? Existem maneiras diferentes de fazer isso? Nesse caso, qual é o melhor caminho. Obrigado.

    
por Nima 05.10.2012 / 21:16

2 respostas

6

Você provavelmente desejará usar o Virtual Hosting do Apache. É um método bem suportado para hospedar muitos domínios em um único endereço IP.

link

Especificamente, hosts virtuais baseados em nome: link

    
por 05.10.2012 / 21:20
12

O Apache2 suporta a exibição de conteúdos diferentes dependendo dos nomes de domínio, mesmo se todos esses domínios resolverem para o mesmo endereço IP. Cada um dos nomes de domínio é tratado por um host virtual , portanto, o nome host virtual baseado em nome .

Aqui está uma configuração de exemplo para dois domínios:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Você encontrará a documentação oficial sobre suporte a host virtual baseado em nome aqui .

No entanto, observe que isso só funcionará com conexões HTTP simples, não com HTTPS (HTTP via SSL): hosts virtuais baseados em nome dependem de saber qual nome está sendo solicitado, mas essas informações não podem ser conhecidas pelo Apache até a conexão SSL criptografada é estabelecida.

Se você precisa ter sua configuração trabalhando com HTTPS também, você precisa confiar em uma extensão para o protocolo SSL chamado Indicação do nome do servidor (SNI) (RFC4366 ). Basicamente, os clientes habilitados para SNI (ex: navegadores da Web) adicionam uma informação de texto simples extra ao estabelecer a conexão SSL criptografada, permitindo que o servidor saiba o nome que está sendo solicitado antes que a conexão SSL esteja pronta.

Todos os navegadores ainda não suportam o SNI. No momento da escrita e de acordo com a Wikipedia, estes fazem:

  • Internet Explorer 7 ou posterior, no Windows Vista ou superior (não funciona no XP, nem no IE 8)
  • Mozilla Firefox 2.0 ou posterior
  • Opera 8.0 ou posterior (o protocolo TLS 1.1 deve estar ativado)
  • Opera Mobile, pelo menos, versão 10.1 beta no Android
  • Google Chrome (Vista ou superior, XP no Chrome 6 ou mais recente, OS X 10.5.7 ou superior no Chrome 5.0.342.1 ou mais recente)
  • Safari 2.1 ou posterior (Mac OS X 10.5.6 ou superior e Windows Vista ou superior)
  • Konqueror / KDE 4.7 ou posterior
  • MobileSafari na Apple iOS 4.0 ou posterior
  • Navegador padrão Android no Honeycomb (v3.x) ou mais recente
  • Windows Phone 7
  • MicroB no Maemo

Hospedar vários hosts virtuais baseados em nomes acessíveis através do HTTPS requer que você ative o mod_ssl e adicione uma configuração similar como no exemplo acima:

Listen 443      
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/    
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

Lembre-se de que o uso do SSL exige que você compre certificados SSL para seus domínios - ou gere alguns certificados auto-assinados e configure o Apache para usá-los em conexões SSL.

    
por 05.10.2012 / 22:52