Jak lokalnie przekierować domenę do innej domeny?

26

Mój plik / etc / hosts wygląda następująco:

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

Pierwsze dwie prace. Ostatni nie. Dlaczego nie? Jak sprawić, żeby działało? Powodem tego jest to, że mam serwer testowy (othersite.com), który jest w sieci lokalnej, ale jego adres IP może się różnić. np. 10.20.7.98 jednego dnia, 10.20.7.35 innego itd.

Jak więc sprawić, że mój system zawsze rozpoznaje testsitebeta.dev na ten sam adres IP co othersite.dev?

Benubird
źródło

Odpowiedzi:

11

Jak już pisał Chris, problem polega na tym, że „othersite.dev” nie jest liczbą. Potrzebny jest format IP hostname1 [hostname2] [hostname3].

Głębszym problemem jest jednak nieporozumienie dotyczące pliku hosta i prawdopodobnie ogólnie DNS. Zasadniczo plik hosta nie został zaprojektowany do przekierowań. Było to proste rozwiązanie z czasów, gdy procesor cyklicznie był tak drogi. Brakowało takich funkcji, jak możliwość dostosowania się do szybko zmieniających się adresów IP bez konieczności ręcznej edycji pliku. Problemy te zostały rozwiązane poprzez przejście z pliku hosta na oparty na sieci system rozpoznawania nazw.

Prawdziwą odpowiedzią na Twój problem nie jest więc użycie /etc/hosts, ale użycie tego hierarchicznego rozproszonego systemu nazewnictwa . Możesz to zrobić na kilka sposobów. Jednym ze sposobów jest CNAME, jak sugerował Chris. Innym sposobem byłoby nadanie drugiemu serwerowi stałego adresu IP. Zarówno prawdziwy adres statyczny, jak i rezerwacja na serwerze DHCP.

Hennes
źródło
1
Nie taka odpowiedź, jakiej szukam. To jest na rozwój; Nie chcę modyfikować żadnych innych maszyn, ponieważ nazwa domeny (testsitebeta.dev) nie musi być dostępna z dowolnego miejsca poza moim lokalnym. Chcę po prostu powiedzieć mojemu komputerowi „traktuj nazwę X tak, jak to było Y”.
Benubird
3
W takim przypadku chcesz zainstalować lokalny serwer DNS i użyć go jako resolvera.
Hennes,
4
Lokalny serwer DNS wydaje się rozwiązaniem. Dla przyszłych gości okazało się to pomocne: superuser.com/q/45789/75287
Benubird
@Benubird: Szukam również tego samego rozwiązania. Ale nie mogłem tego zdobyć. Czy możesz wyjaśnić nieco dalej, w jaki sposób konfigurujesz?
Jay Chakra,
3

Format / etc / hosts jest podobny do „IP” „Hostname” 127.0.0.1 localhost

Potrzebujesz na CNAMElokalnym serwerze DNS, aby osiągnąć to, czego potrzebujesz. Możesz pobrać adres IP „othersite.dev” i połączyć go z „testitbeta.dev”, tak jak zrobiłeś to z „testitalpha.dev”, ale kiedy ten adres IP się zmieni, będziesz również musiał zmienić /etc/hostsplik.

Chris
źródło
1

Jeśli witryna othersite.com ma dynamiczny adres IP, ale zawsze jest dostępna według nazwy, musisz polegać na jego zarejestrowanym serwerze DNS, zawsze odwołując się do nazwy.

Rozwiązaniem jest uczynienie z testsitebeta.dev przekierowującego adresu URL dla witryny othersite.com.

Nazwa_serwera Testsitebeta.dev Przekierowanie / http://othersite.com

W ten sposób witryna othersite.com zawsze działa (nie psując jej przy złym wpisie hosta), a testsitebeta.dev jest zawsze przekierowywany do witryny othersite.com, rozwiązując nazwę do właściwego adresu IP.

użytkownik557515
źródło