Virtuahost con Apache

virtualhost_big

Buongiorno a tutti! In molti post abbiamo parlato del web server Apache, di come fare determinate configurazione, come creare una connessione sicura utilizzando il protocollo ssl. Oggi andremo a vedere un’altra sua importantissima funzionalità, ossia i virtualhost.

Virtualhost

Prima di andare a vedere come crearne uno (o più), cerchiamo di capire cosa sono e a cosa servono. Un virtualhost è uno dei modi semplici per rendere visibile un sito internet, o un’applicazione web. In poche parole, con questa configurazione, Apache renderà disponibile un servizio sul web. Fin qui sembrerà abbastanza ovvio, d’altronde questo è il compito di Apache. Inoltre, di default, la configurazione Apache rende disponibile hostare un sito anche senza il virtualhost. Quindi a che serve? Semplice, di default, come appena detto, Apache hosta un solo sito, ma se noi vogliamo hostare più siti? Qui ci vengono in aiuto i virtualhost, che ci permettono di mettere più siti su un unico web server, esattamente quello che fa’ chi offre un servizio di hosting, in tal modo con una singola macchina si possono hostare molti siti.

Configurazione

Ovviamente, prima di procedere con la configurazione dobbiamo installare il server web di Apache. Vi consigliamo quindi di leggere questo nostro post.

Una volta installato possiamo passare alla sua configurazione.

Come prima cosa dobbiamo abilitare l’utilizzo dei virtualhost da parte di Apache, poiché esso è di solito un file di configurazione a parte, e per utilizzarlo dobbiamo includerlo esplicitamente nel file di configurazione principale.

Se siete su Ubuntu o derivate, il file di configurazione lo trovate in:

 

sudo nano /etc/apache2/apache2.conf

 

e de-commentate la seguente linea:

 

IncludeOptional site-enabled/*.conf

 

Se siete invece su Archlinux o avete comunque installato il pacchetto apache e non apache2 allora il file di configurazione lo trovate qui:

 

sudo nano /etc/httpd/conf/httpd.conf

 

e de-commentate la seguente linea:

 

Include conf/extra/httpd-vhosts.conf

 

Bene, ora che abbiamo incluso il file di configurazione del virtualhost dobbiamo andarlo a modificare.

Quindi apriamolo e inseriamo queste linee in fondo:

 

<VirtualHost *:80>

    ServerAdmin amministratore@prova.it

    DocumentRoot "/var/www/sito"

    ServerName prova.it

    ErrorLog "/var/log/prova_error_log"

    CustomLog "/var/log/prova_access_log" common

</VirtualHost>

 

Vediamo più in dettaglio il significato di quello che abbiamo scritto. *:80 significa banalmente la porta in cui il nostro servizio è in ascolto. ServerAdmin è l’indirizzo email con cui possiamo contattare l’amministratore del sito. DocumentRoot è la directory dove verrà salvato il contenuto del sito come ad esempio pagine html, css, javascript ecc. ServerName è un campo molto importante, qui distinguiamo univocamente questo virtualhost con gli altri, inserendo di norma il dns del sito web, quindi tutte le richieste al sito “prova.it” verranno indirizzate a tale sito, mentre altre richieste verranno mandate ad altri virtualhost (se presenti) o eventualmente scartati. Le ultime due righe ErrorLog e CustomLog sono molto intuitive, qui ci saranno i path in cui mettere i log del sito web.

Una volta inserito il nuovo virtualhost, è necessario riavviare Apache, poiché abbiamo modificato i suoi file di configurazione.

Da notare che noi possiamo inserire quanti virtualhost vogliamo, sarà poi Apache, grazie alla direttiva ServerName, che distinguerà un sito da un’altro.

Conclusioni

Bene, oggi abbiamo visto un modo molto veloce, facile e interessante su come hostare più siti web su un singolo web server, senza dover utilizzare altre macchine.

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento