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 ne le fait pas. Pourquoi pas? Comment puis-je le faire fonctionner? La raison pour laquelle je le fais, c'est parce que j'ai un serveur de test (othersite.com), qui se trouve 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 faire en sorte que mon système résolve toujours testsitebeta.dev sur la même adresse IP que othersite.dev?
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 grave est toutefois un malentendu concernant le fichier Host et éventuellement 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 à l'époque où les cycles du processeur étaient coûteux. Il lui manquait des fonctionnalités telles que la possibilité de s'adapter à la modification rapide des adresses IP 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 est donc de ne pas utiliser /etc/hosts
, mais plutôt d'utiliser ce système de nommage hiérarchique distribué . Vous pouvez le faire de plusieurs manières. Un moyen est le CNAME comme suggéré par Chris. Une autre solution consisterait à attribuer au deuxième serveur une adresse IP fixe. Une adresse statique réelle ou une réservation sur le serveur DHCP.
Le format de/etc/hosts est "IP" "Nom d'hôte" - comme 127.0.0.1 localhost
Vous avez besoin d'une CNAME
sur votre serveur DNS local pour obtenir ce dont vous avez besoin. Vous pouvez obtenir l'adresse IP de "othersite.dev" et la lier à "testitbeta.dev" comme vous l'avez fait avec "testitalpha.dev", mais lorsque cette adresse IP changera, vous devrez également modifier votre fichier /etc/hosts
.
Si othersite.com a une adresse IP dynamique, mais qu'il 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 Rediriger/ http://othersite.com
Ainsi, othersite.com fonctionne toujours (sans casser le passage avec une mauvaise entrée d'hôte) et testsitebeta.dev est toujours redirigé vers othersite.com en résolvant le nom à la bonne adresse IP.