Como redireciono um domínio para outro domínio localmente?

26

Meu arquivo / etc / hosts fica assim:

127.0.0.1       localhost
10.20.7.67      testsitealpha.dev
othersite.dev   testsitebeta.dev

Os dois primeiros trabalhos. O último não. Por que não? Como faço para funcionar? A razão pela qual estou fazendo isso é porque tenho um servidor de teste (othersite.com), que está na rede local, mas o IP pode variar. por exemplo, 10.20.7.98 um dia, 10.20.7.35 outro, etc.

Então, como faço meu sistema sempre resolver testsitebeta.dev para o mesmo ip que othersite.dev?

Benubird
fonte

Respostas:

11

Como Chris já escreveu, o problema é que "othersite.dev" não é um número. O formato que você precisa é IP hostname1 [hostname2] [hostname3].

O problema mais profundo, no entanto, é um mal-entendido sobre o arquivo host e possivelmente sobre o DNS em geral. Basicamente, o arquivo host não foi projetado para redirecionamentos. Era uma solução simples desde quando a CPU muda quando é caro. Faltavam recursos, como a capacidade de se ajustar à mudança rápida de endereços IP sem precisar editar manualmente um arquivo. Esses problemas foram resolvidos alternando do arquivo host para o sistema resolvedor baseado em rede.

A resposta real para o seu problema, portanto, não é usar /etc/hosts, mas usar esse sistema hierárquico de nomeação distribuída . Você pode fazer isso de várias maneiras. Uma maneira é o CNAME, conforme sugerido por Chris. Outra maneira seria fornecer ao segundo servidor um endereço IP fixo. Um endereço estático real ou faça uma reserva no servidor DHCP.

Hennes
fonte
11
Não é o tipo de resposta que estou procurando. Isto é para desenvolvimento; Não quero modificar nenhuma outra máquina, pois o nome de domínio (testsitebeta.dev) não precisa ser acessível de qualquer lugar, exceto o meu local. Eu só quero uma maneira de dizer ao meu computador "tratar o nome X como se fosse Y".
Benubird
3
Nesse caso, você deseja instalar um servidor DNS local e usá-lo como resolvedor.
Hennes 16/07
4
Servidor DNS local parece ser a solução. Para futuros visitantes, achei útil: superuser.com/q/45789/75287 #
Benubird
@ Benubird: Eu também estou procurando a mesma solução. Mas não conseguiu. Você pode explicar um pouco mais como você configura?
Jay Chakra
3

O formato do / etc / hosts é "IP" "Nome do host" - como 127.0.0.1 localhost

Você precisa de um CNAMEservidor DNS local para conseguir o que precisa. Você pode obter o IP do "othersite.dev" e vinculá-lo ao "testitbeta.dev", como fez com o "testitalpha.dev", mas quando esse IP for alterado, você também precisará alterar o /etc/hostsarquivo.

Chris
fonte
1

Se othersite.com tiver IP dinâmico, mas sempre acessível por nome, você deverá confiar no DNS registrado sempre fazendo referência a ele por nome.

Sua solução é tornar o testsitebeta.dev um URL de redirecionamento para othersite.com.

ServerName testsitebeta.dev Redirect / http://othersite.com

Dessa forma, othersite.com sempre funciona (sem interromper a entrada incorreta do host) e o testsitebeta.dev é sempre redirecionado para othersite.com, resolvendo o nome com o IP correto.

user557515
fonte