Come reindirizzare un dominio su un altro dominio localmente?


26

Il mio file / etc / hosts è simile al seguente:

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

I primi due lavori. L'ultimo no. Perchè no? Come faccio a farlo funzionare? Il motivo per cui lo sto facendo è perché ho un server di prova (othersite.com), che si trova sulla rete locale, ma il suo IP può variare. ad es. 10.20.7.98 un giorno, 10.20.7.35 un altro, ecc.

Quindi, come faccio a far sì che il mio sistema risolva sempre testsitebeta.dev sullo stesso IP di othersite.dev?

Risposte:


11

Come già scritto da Chris, il problema è che "othersite.dev" non è un numero. Il formato che ti serve è IP hostname1 [hostname2] [hostname3].

Il problema più profondo è tuttavia un malinteso sul file host e probabilmente sul DNS in generale. Fondamentalmente il file host non è stato progettato per i reindirizzamenti. Era una soluzione semplice da quando i cicli della CPU erano costosi. Mancava funzionalità come la possibilità di adattarsi a indirizzi IP che cambiano rapidamente senza dover modificare manualmente un file. Questi problemi sono stati risolti passando dal file host al sistema di risoluzione basato sulla rete.

La vera risposta al tuo problema non è quindi quella di utilizzare /etc/hosts, ma invece di utilizzare questo sistema di denominazione distribuito gerarchico . Puoi farlo in diversi modi. Un modo è il CNAME come suggerito da Chris. Un altro modo sarebbe quello di assegnare al secondo server un indirizzo IP fisso. Entrambi un indirizzo statico reale o effettuare una prenotazione nel server DHCP.


1
Non è il tipo di risposta che sto cercando. Questo è per lo sviluppo; Non voglio modificare nessun'altra macchina, dal momento che il nome di dominio (testitebeta.dev) non deve essere accessibile da nessun luogo tranne il mio locale. Voglio solo un modo per dire al mio computer "tratta il nome X come se fosse Y".
Benubird,

3
In tal caso, si desidera installare un server DNS locale e utilizzarlo come resolver.
Hennes,

4
Il server DNS locale sembra essere la soluzione. Per i futuri visitatori, l'ho trovato utile: superuser.com/q/45789/75287
Benubird,

@Benubird: sto anche cercando la stessa soluzione. Ma non ci sono riuscito. Puoi spiegarci un po 'di più su come impostare?
Jay Chakra

3

Il formato di / etc / hosts è "IP" "Nome host" - simile 127.0.0.1 localhost

È necessario un CNAMEserver DNS locale per ottenere ciò di cui hai bisogno. Potresti ottenere l'IP di "othersite.dev" e collegarlo a "testitbeta.dev" come hai fatto con "testitalpha.dev" ma quando quell'IP cambia dovrai cambiare anche il tuo /etc/hostsfile.


1

Se othersite.com ha un IP dinamico, ma è sempre accessibile per nome, devi fare affidamento sul DNS registrato facendo sempre riferimento a esso per nome.

La soluzione è rendere testitebeta.dev un URL di reindirizzamento per othersite.com.

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

In questo modo othersite.com funziona sempre (senza interromperlo con una voce host errata) e testitebeta.dev viene sempre reindirizzato a othersite.com risolvendo il nome sull'IP corretto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.