Verifica della capacità di un server di servire un determinato dominio


11

Supponi di aver Server Aconfigurato il tuo server Web-demone preferito per servire www.example.com. Ora vuoi spostarlo su Server B. Dopo un sacco di copie e configurazioni, il nuovo server sembra essere pronto. Un test finale sarebbe in ordine: prima di modificare i record DNS, come si richiede www.example.comdal server B quando i record DNS puntano ancora al server A?


Mentre la mia domanda principale è stata risolta, nel caso in cui / etc / hosts non sia sotto il mio regno di influenza, è possibile testarlo con telnet parlando invece di HTTP1.1 crudo con il server web?


8
Non modificare la domanda per porre una domanda completamente nuova. Tende a (in qualche modo) invalidare le risposte esistenti e anche la piattaforma non invia notifiche che una domanda è cambiata, rendendo improbabile che le persone già coinvolte nella tua domanda rivedranno le loro risposte. Puoi lasciare un commento diretto per loro che hai una domanda di follow-up. Spesso una strategia migliore è quella di porre una nuova domanda (eventualmente indicando le tue domande e risposte precedenti).
HBruijn,

2
Altamente considerato il voto negativo solo per il turno di goalpost completo con la modifica. > _ <
Wesley il

Risposte:


12

Il DNS è una cosa magica. Con il controllo sufficiente su un PC client, è possibile effettuare right.comin wrong.come viceversa.io. Passa a un PC client di prova e confondi con la sua risoluzione DNS modificando il file host su quel client, oppure puoi fare qualcosa di un po 'più complesso e dare a quell'host un semplice server DNS da interrogare, come dnsmasq. In entrambi i casi, l'obiettivo finale è fare in modo che la risposta DNS per le domande relative www.example.comrisponda con l'indirizzo IP per il Server B. Le intestazioni host HTTP avranno quindi il nome DNS per www.example.com, ma saranno mirate a Server B.

Magia!


3
In qualche modo /etc/hostsnon mi è venuto in mente, e questo ha funzionato perfettamente. Saluti per il promemoria!
Jarmund,

2
Il hostsfile non è coinvolto nella risoluzione DNS ma è un meccanismo di ricerca dei nomi completamente separato che la libreria del resolver fornita dal sistema operativo client può e, nella maggior parte dei casi, utilizzerà oltre alle ricerche nel DNS. Personalmente penso che la parte "è magica" si nutre solo di "non c'è bisogno di capire", che è sicuramente una brutta cosa per i professionisti.
Håkan Lindqvist,

@ HåkanLindqvist Hai gravemente frainteso il contesto e l'uso della frase.
Wesley,

In ogni caso, ospita il fileDNS . Questo è SF; Mi aspetto che le persone qui, se ovunque, conoscano la differenza.
Ilmari Karonen,

@IlmariKaronen E non ho detto che i file host fossero DNS, quindi le tue aspettative per ServerFault sono state soddisfatte e siamo tutti qui! ᕕ (ᐛ) ᕗ
Wesley,

11

È importante notare che ciò che conta per eseguire un test come questo per HTTP non è in alcun modo correlato al DNS ma a ciò che il client HTTP invia come Hostvalore di intestazione.

Il client deve connettersi all'indirizzo IP e alla porta giusti, ovviamente, ma oltre a ciò tutto si riduce all'intestazione Hostche è in linea nella richiesta HTTP stessa.


Per un test rapido è possibile utilizzare il seguente comando senza modificare alcuna configurazione a livello di sistema operativo sul client:

$ curl -H "Host: www.example.com" http://192.0.2.17/foo/bar

o, del resto,

$ curl -H "Host: www.example.com" http://beta.example.com/foo/bar


Per fare lo stesso con un normale browser Web, è necessario disporre di un'estensione del browser in grado di modificare le intestazioni della richiesta (o eventualmente un proxy HTTP che modifica le intestazioni) oppure è necessario modificare la configurazione del sistema operativo del computer client.

Come è stato menzionato, il modo più semplice per effettuare una modifica di configurazione sarebbe aggiungere una voce al hostsfile. In questo modo la libreria del risolutore del sistema operativo client otterrebbe già un successo quando si consulta il hostsfile e non sarà nemmeno necessario eseguire una ricerca DNS.

Altre opzioni includono la modifica dei server resolver DNS configurati sul client in un nameserver che è impostato per rispondere come desiderato.


1
+1 per una soluzione che non comporta problemi con la risoluzione dei nomi
Jarmund,

2
Recenti curlconsente di sovrascrivere la normale risoluzione dei nomi (DNS o file host) e comunque di eseguire automaticamente le intestazioni, nonché di SNI se si utilizza / verifica httpS. Vedi --resolvenella tua manpage o su curl.haxx.se/docs/manpage.html .
dave_thompson_085,

4

Puoi provarlo con telnet. È necessario effettuare una richiesta HTTP non elaborata digitando i comandi. Non puoi commettere errori e alcuni server hanno un timeout, quindi devi anche digitare l'intera richiesta entro quel lasso di tempo.

Il comando sarà qualcosa del genere:

telnet serverb 80

La richiesta sarà simile a questa:

GET / HTTP/1.1
Host: www.example.com

Nota che deve terminare con una riga vuota, quindi premi Invio due volte dopo l'intestazione host.


1
Nitpick: anche se le intestazioni HTTP non sono sensibili al maiuscolo / minuscolo, l' intestazione normativaHost non è maiuscola. (E a quanto pare alcuni server potrebbero avere problemi con diverse maiuscole.)
Bob,

@Bob true, modificato
briantist,

3

Quello che faccio di solito è forzare www.example.com all'indirizzo IP del server B nel mio / etc / hosts. Lo faccio da quando ho usato Mosaic e da quando lo faccio raramente non ho sentito il bisogno di trovare di meglio.

Guardandomi un po 'in giro, ho trovato /superuser/403042/custom-host-file-for-firefox a cui risponde https://addons.mozilla.org/es/firefox/addon/ foxyproxy-standard / ma c'è una nota molto recente che dice che è stato abbandonato.


Rispondendo alla tua modifica chiedendo un metodo di prova senza / etc / hosts, sì, esiste. Sarebbe o telnet per test molto basilari, un componente aggiuntivo come ho menzionato nella mia risposta sopra, o un proxy personalizzato, o (e questo è il metodo che preferirei) un ServerAlias ​​sul server B di cui www2.example. com.
Legge

3

Se hai bisogno di controllare se funziona, ti consiglio un semplice plugin broswer come Modify Headersper Firefox, e cambio HOSTa www.mydomain.com.

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.