Aggiornato il: 07-04-2023 09:41
Avete presente i tantissimi servizi di hosting condiviso come Aruba, TopHost e via dicendo? Con qualche differenza e precisazione, sono tutti basi sul meccanismo del “virtual hosting” (hosting virtuale), vale a dire: un metodo per permettere di ospitare più di un dominio (ad esempio sito1.it, sitobla.com,altrosito.net) su una singola macchina server, o su un pool di server distinti. Questo corrisponde ad un meccanismo di virtualizzazione delle risorse hardware e software dell’hosting stesso, che mette a disposizione CPU, memoria e disco fisico per consentire ai webmaster di gestire in modo indipendente i propri siti, dando loro l’illusione di essere gli unici / soli su quella macchina.
Il principio del virtual hosting è tipico dei servizi di web hosting ma, per estensione, si può adattare a molte altre architetture internet.
A cosa server un virtual host?
La gestione di un virtual hosting permette numerosi vantaggi, come la necessità di configurare la macchina in modo semplice e flessibile, venendo incontro alla maggioranza delle esigenze dei webmaster (specie dei siti medio-piccoli), assumendo che è molto raro che tutti i client richiedano il massimo delle risorse nello stesso momento. àˆ sostanzialmente un principio di overselling, molto utilizzato nel marketing, che possiede anche un supporto tecnologico fornito qui, per l’appunto, dall’hosting virtuale.
2 esempi di virtual host in Apache
Di norma i servizi di virtual hosting possono essere name-based (cioè traducono dinamicamente l’URL richiesto) oppure IP-based (utilizzano un IP diverso per ogni nome di host), ma esistono anche numerose “ibridazioni” come le configurazioni port-based e le combinazioni tra name e IP, adatte a gestire protocolli SSL/TLD. Il virtual host viene utilizzato dai webmaster senza che se ne accorgano, per cui sapere cosa sono è utile, il più delle volte, solo come curiosità personale: chiaramente se dovete configurare un web server per un web service o un sito da zero, per esempio su dedicato o VPS, dovrete essere voi a saper configurare il servizio, attivarlo e lasciarlo operativo.
A livello più pratico, il web server Apache (utilizzato sulla maggioranza dei servizi condivisi) permette di sfruttare cinque diverse configurazioni di virtual host, configurabili mediante interfaccia SSH ovvero comando da terminale remoto preferibilmente su server Linux (su Windows alcuni path di sistema possono essere differenti). Gli esempi saranno in parte auto-esplicativi e sono tratti dal sito ufficiale del web server http://httpd.apache.org/docs/2.2/vhosts/.
Configurazione name-based: aggiungere il www. prima dell’indirizzo del dominio
Poniamo di avere l’indirizzo sito.tld, da mappare sulla porta 80 del server (che i browser riconosceranno in automatico senza che la si scriva esplicitamente), a cui vogliamo aggiungere il www. prima del nome: il tutto senza, quindi, modificare la configurazione del mod_rewrite nè modificare i record CNAME del nostro dominio.
Per farlo:
aprite un terminale di comando remoto (o un terminale locale, se vi trovate a lavorare su localhost);
scrivete il comando:
find / -name 'httpd.conf' -print
per visualizzare il path del file httpd.conf;
andate nella cartella rilevata, ad es. su Linux RedHat tale percorso è /etc/httpd/conf/httpd.conf
per cui scriveremo:
/etc/httpd/conf/httpd.conf
A questo punto bisognerà scrivere una direttiva per il nostro sito web ed una specifica per il www, a cui seguiranno eventuali altre configurazioni di altri domini. Ogni configurazione è una tripla del tipo (ServerName, ServerAlias, DocumentRoot) che indica come si chiama l’indirizzo, come viene tradotto dal server e dove si trova fisicamente sul disco dello stesso.
Avremo quindi, nell’esempio:
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.sito.tld ServerAlias sito.tld *.sito.tld DocumentRoot /www/cartellasito </VirtualHost> <VirtualHost *:80> ServerName www.altrodominio.tld DocumentRoot /www/cartellaaltrodominio </VirtualHost>
Salviamo la configurazione ed avremo configurato, almeno in versione base, il nostro virtual host.
Configurazione IP-based
In questo caso la configurazione parte dal presupposto che si stia usando un IP diverso per ogni nome di host, per cui potremmo avere qualcosa del genere:
<VirtualHost 192.168.0.1:80>
ServerAdmin [email protected]
DocumentRoot /groups/smallco/www
ServerName smallco.example.com
ErrorLog /path/to/logs/error_log
TransferLog /path/to/logs/access_log
</VirtualHost>
<VirtualHost 192.168.0.2:80>
ServerAdmin [email protected]
DocumentRoot /groups/baygroup/www
ServerName baygroup.example.com
ErrorLog /path/to/logs/error_log
TransferLog /path/to/logs/access_log
</VirtualHost>

Ingegnere informatico per passione, consulente per necessità, docente di informatica; ho creato Trovalost.it e ho scritto quasi tutti i suoi contenuti. Credits immagini: pexels.com, pixabay.com, wikipedia.org, Midjourney, StarryAI, se non diversamente specificato. Questo sito non contiene necessariamente suggerimenti, pareri o endorsement da parte del proprietario del progetto e/o espressi a titolo personale. Per contatti clicca qui