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

11

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

Nima
fonte

Respostas:

14

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

Aqui está uma configuração de amostra 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 funcionará apenas com conexões HTTP simples, e não com HTTPS (HTTP sobre SSL): os hosts virtuais baseados em nomes dependem de saber qual nome está sendo solicitado, mas essas informações não podem ser conhecidas pelo Apache até que o SSL criptografado conexão estabelecida.

Se você precisar que sua instalação funcione com HTTPS também, você precisará contar com uma extensão do protocolo SSL chamada SNI ( Server Name Indication ) ( RFC4366 ). Basicamente, os clientes habilitados para SNI (por exemplo, navegadores da web) adicionam informações adicionais em texto sem formatação 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 SNI. No momento da redação deste artigo 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 no Apple iOS 4.0 ou posterior
  • Navegador padrão do Android no Honeycomb (v3.x) ou mais recente
  • Windows Phone 7
  • MicroB no Maemo

Hospedar vários hosts virtuais baseados em nome acessíveis através do HTTPS exige que você ative o mod_ssl e adicione uma configuração semelhante à do 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 autoassinados e configure o Apache para usá-los para conexões SSL.

p_piotr3k
fonte
você pode dizer o nome e o caminho do arquivo de configuração apache2?
João Pimentel Ferreira
não se esqueça de reiniciar o apache após as alteraçõessudo service apache2 restart
João Pimentel Ferreira