Con il nome "domini
virtuali", o Virtual Hosts, si identificano tutti gli Hosts che vengono configurati in un server Web in
aggiunta all'Host originario. In pratica, con i "domini virtuali" avremo la possibilità di far operare
separatamente pił server in una stessa macchina, ognuno con un proprio dominio ("www.primo_server.ext",
"www.secondo_server.ext"..).
Esistono due tipologie di Virtual Hosts: quelli che fanno capo a
differenti indirizzi IP (IP Based Virtual hosts) e, quelli che vengono distinti sulla base del nome (host-based
o non IP virtual hosts).
In entrambi i casi, abbiamo la possibilità di far convivere pił siti
internet,
ognuno con il proprio "www.dominio.ext", su una stessa
macchina. Per chi fa "Hosting", cioè coloro che per mestiere
vendono
porzioni di spazio Web destinate ad ospitare siti internet, la
possibilità di creare Virtual
Hosts rappresenta un indubbio vantaggio sia a livello operativo che economico.
Se disponiamo di pił
indirizzi IP possiamo configurare dei "domini virtuali" IP Based. Dal punto di vista di Apache, questo tipo di
configurazione può essere operata in due modi: utilizzare un unico processo http
che faccia capo a tutti
i domini, oppure, dedicarne uno per ognuno di
essi; se disponiamo di una macchina abbastanza potente in termini
di
risorse, la seconda opzione è certamente preferibile, tutto dipende dal
numero di domini che desideriamo
siano presenti nel nostro computer Server.
Se scegliamo di concedere ad ogni dominio un proprio
httpd, dovremo modificare il file http.conf intervenendo sull'istruzione Listen ("ascolta"); ad essa
vanno passati come parametri un indirizzo IP (o un nome di dominio) e il numero della porta che ogni httpd
utilizzerà per mettersi in "ascolto" pronto a soddisfare le richieste provenienti dai client. Un esempio
potrebbe essere questo:
Listen 111.111.1.1:80 Listen 111.111.1.2:81oppure
Listen www.nome_dominio.ext:80 Listen www.altro_nome_dominio.ext:81Come avrete avuto modo di notare, ad ogni dominio viene dedicata una porta diversa.
<VirtualHost www.nome_dominio.ext> ServerAdmin email@nome_dominio.ext DocumentRoot /PATH/nome_cartella ServerName www.nome_dominio.ext ErrorLog /PATH/error.log CustomLog /PATH/nome_access_log </VirtualHost>Niente di particolarmente complesso, dall'esempio si comprende facilmente che per costruire il container sono necessari:
NameVirtualHost 111.111.1.1 <VirtualHost 111.111.1.1> ServerName www.nome_server.ext DocumentRoot /PATH/nome_cartella </VirtualHost> <VirtualHost 111.111.1.1> ServerName www.nome_server.ext DocumentRoot /PATH/nome_cartella </VirtualHost>