Virtual hosting per imbranati
Se avete presente i vari servizi di hosting condiviso, come Netsons, Siteground, TopHost dei quali parliamo spesso su questo sito, vi renderete subito conto che per farli funzionare serva un’infrastruttura. Quando parliamo di infrastruttura facciamo riferimento sia ad hardware (quindi ad un computer server oppure ad una rete di computer in cloud) che a software (le varie istanze di web server che fanno funzionare i siti, i database MySQL, i sistemi operativi Linux che permettono alle ultime versioni di PHP di essere perfettamente funzionanti).
Virtual hosting” o in italiano hosting virtuale è un sistema architettato ad hoc 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. Ogni sito deve essere gestibile per conto proprio, e le varie configurazioni non devono interferire tra di loro: tutto questo è alla base dei servizi di hosting e, più tecnicamente parlando, del virtual hosting.
Questo coincide con 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 che serve un hosting virtuale?
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 hosting 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 basata su nome o name-based
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 basata su IP
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>
👇 Contenuti da non perdere 👇
- Domini Internet 🌍
- Lavoro 🔧
- monitoraggio servizi online 📈
- Programmare 🖥
- Scrivere 🖋
- 💬 Il nostro canale Telegram: iscriviti
- 🟡 Guida pratica ai MOOC (Massive Open Online Course): cosa sono e dove trovarli
- 🟠 Domini scaduti: tutto quello che c’è da sapere
- 🔴 Storia, teoria e pratica della stocastica