Comment rediriger un domaine vers un autre domaine localement?

26

Mon fichier / etc / hosts ressemble à ceci:

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

Les deux premiers fonctionnent. Le dernier non. Pourquoi pas? Comment puis-je le faire fonctionner? La raison pour laquelle je fais cela, c'est parce que j'ai un serveur de test (othersite.com), qui est sur le réseau local, mais son adresse IP peut varier. par exemple 10.20.7.98 un jour, 10.20.7.35 un autre, etc.

Alors, comment puis-je faire en sorte que mon système résolve toujours testsitebeta.dev sur la même adresse IP que othersite.dev?

Benubird
la source

Réponses:

11

Comme Chris l'a déjà écrit, le problème est que "othersite.dev" n'est pas un nombre. Le format dont vous avez besoin est IP hostname1 [hostname2] [hostname3].

Le problème le plus profond est cependant un malentendu sur le fichier hôte et peut-être sur le DNS en général. Fondamentalement, le fichier hôte n'a pas été conçu pour les redirections. C'était une solution simple à partir du moment où le processeur est coûteux. Il manquait de fonctionnalités telles que la possibilité de s'adapter à des adresses IP qui changent rapidement sans avoir à modifier manuellement un fichier. Ces problèmes ont été résolus en passant du fichier hôte au système de résolution basé sur le réseau.

La vraie réponse à votre problème n'est donc pas d'utiliser /etc/hosts, mais d'utiliser ce système de nommage hiérarchique distribué à la place. Vous pouvez le faire de plusieurs manières. Une façon est le CNAME comme suggéré par Chris. Une autre façon serait de donner au deuxième serveur une adresse IP fixe. A la fois une vraie adresse statique, ou faites une réservation sur le serveur DHCP.

Hennes
la source
1
Pas le genre de réponse que je cherche. C'est pour le développement; Je ne veux modifier aucune autre machine, car le nom de domaine (testsitebeta.dev) n'a pas besoin d'être accessible de n'importe où sauf de mon local. Je veux juste un moyen de dire à mon ordinateur "traiter le nom X comme si c'était Y".
Benubird
3
Dans ce cas, vous souhaitez installer un serveur DNS local et l'utiliser comme résolveur.
Hennes
4
Le serveur DNS local semble être la solution. Pour les futurs visiteurs, j'ai trouvé cela utile: superuser.com/q/45789/75287
Benubird
@Benubird: Je recherche également la même solution. Mais je n'ai pas pu l'obtenir. Pouvez-vous expliquer un peu plus la configuration?
Jay Chakra
3

Le format de / etc / hosts est "IP" "Hostname" - comme 127.0.0.1 localhost

Tu as besoin d'un CNAME dans votre serveur DNS local pour obtenir ce dont vous avez besoin. Vous pouvez obtenir l'IP de "othersite.dev" et le lier à "testitbeta.dev" comme vous l'avez fait avec "testitalpha.dev", mais lorsque cette IP changera, vous devrez également modifier votre /etc/hostsfichier.

Chris
la source
1

Si othersite.com a une IP dynamique, mais est toujours accessible par son nom, vous devez vous fier à son DNS enregistré en le référençant toujours par son nom.

Votre solution consiste à faire de testsitebeta.dev une URL de redirection pour othersite.com.

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

De cette façon, othersite.com fonctionne toujours (sans le casser avec une entrée d'hôte incorrecte) et testsitebeta.dev est toujours redirigé vers othersite.com en résolvant le nom à la bonne IP.

user557515
la source