Un Virtual Hosting è un meccanismo che permette a più siti web di coesistere ed essere fruibili sullo stesso server. Se non esistesse un sistema di virtual hosting, sarebbe necessario avere tanti server quanti siti web con gravi conseguenze sull’aumento dei costi di gestione.
Iniziamo con l’introdurre in questo articolo alcuni concetti fondamentali.
Concetti fondamentali
Indirizzo IP etichetta numerica che contraddistingue univocamente un dispositivo direttamente collegato a una rete Internet o, più in generale, a una rete informatica.
Nome di dominio astrazione alfanumerica che permette l’identificazione di un indirizzo numerico in maniera più semplice e accessibile a livello mnemonico.
Server dispositivo connesso alla rete Internet in grado di fornire in qualche modo uno o più servizi a seguito di specifiche richieste.
Web Server (HTTP Server) software che, installato su un server che ne permette il funzionamento come tale.
Direttiva di configurazione regola che indica al web server come funzionare correttamente secondo volontà del cliente.
Logica di funzionamento
Premesso che avere un server dedicato soltanto per ospitare un’applicazione web che non richiede molte risorse per il funzionamento è uno spreco oltre che un costo inutile, è cosa buona notare che è possibile all’interno del file system di un sistema operativo creare directory (cartelle). L’idea che sta alla base del funzionamento del virtual hosting è quella di creare tante cartelle all’interno della cartella base del web server in uso e all’interno di ognuna di esse archiviare una applicazione web che desideriamo fa funzionare sul server. La cartella di base del web server viene denominata Document Root, cioè in lingua italiana, cartella radice, cartella base; se, per esempio desideriamo che sul server funzionino due applicazioni web, che, per comodità, chiamiamo A e B, dovremmo creare all’interno della Document Root due sottocartelle e nella prima copiare i file dell’applicazione A e nella seconda dovremmo copiare i file dell’applicazione B. Arrivati a questo punto abbiamo due Document Root cioè una che contiene l’applicazione che abbiamo chiamato A e l’altra che contiene l’applicazione che abbiamo chiamato B. La difficoltà sta nel fatto che il server è collegato alla rete Internet per mezzo di un solo indirizzo IP e, intuitivamente, un solo indirizzo non può gestire due Document Root diverse in quanto non il server non sarebbe in grado di capire in base a quali criteri far funzionare di volta in volta l’applicazione A oppure l’applicazione B. L’idea alla base del Virtual Hosting Name Based è quella di associare allo stesso indirizzo IP due nomi di dominio diversi per esempio C e D. Dunque, sia C sia D rimandano allo stesso server in quanto sono associati allo stesso indirizzo IP; associando, per esempio, il nome C all’applicazione A e il nome D all’applicazione B, il server sarebbe in grado di capire di volta in volta a quale applicazione si sta facendo riferimento.
Implementazione in Windows
Una volta installato XAMPP, andiamo a capire come poter implementare la logica sopra descritta all’interno del sistema operativo Microsoft Windows.
Apriamo la cartella che contiene tutti i file con le direttive di configurazione di Apache HTTP Web Server; a meno di modifiche in fase di installazione questa cartella dovrebbe essere
C:\xampp\apache\conf\original
e apriamo la cartella extra.
Apriamo in modalità amministratore con un blocco note come Notepad++ il file httpd-vhosts.conf.