Torna al blog

Configurazione dei Virtual Host di Apache su Ubuntu 20.04

Configurazione dei Virtual Host di Apache su Ubuntu 20.04

Apache è attualmente il server web più utilizzato al mondo. Si tratta di un software open-source gestito da The Apache Software Foundation. A partire da settembre 2020, si stima che gestisca il 36% di tutto il traffico dei siti web nel mondo. Gli sviluppatori lo adorano per la sua velocità, sicurezza, affidabilità e robustezza. La sua facilità di personalizzazione gli consente di soddisfare le esigenze di molti ambienti installando estensioni e moduli.

Apache viene fornito con un sistema di corrispondenza che puoi utilizzare per ospitare più domini o siti utilizzando una singola installazione del server Apache esposta su un singolo indirizzo IP. I domini o i siti sono configurati in uno dei file di configurazione di Apache definiti come host virtuali.

Ogni dominio ha una definizione di host virtuale con una directory specifica a cui punta. Quando un utente visita un dominio, il server esamina ogni host virtuale corrispondente e seleziona quale utilizzare per soddisfare la richiesta del visitatore in base all'hostname inserito. Se non viene trovato alcun hostname corrispondente, il server utilizza come fallback il primo host virtuale definito nel file conf. Il visitatore accederà alla pagina web richiesta senza sapere che lo stesso server sta ospitando altri siti. A seconda delle risorse disponibili sul tuo server e di quanto traffico può gestire, puoi ospitare tutti i domini che desideri.

In questo tutorial, ti guideremo nella configurazione degli host virtuali su Ubuntu 20.04 server.

Come prima cosa

Per seguire questo tutorial, dovresti avere un'installazione di Ubuntu 20.04. È inoltre necessario creare un utente non-root e accedere con esso.

I passaggi di questo tutorial richiedono anche che Apache sia installato. Se non l'hai già fatto, puoi installarlo usando i comandi seguenti. Puoi seguire il nostro tutorial sulla configurazione dello stack LAMP – Linux Apache MySQL PHP per una guida alla configurazione più dettagliata.

Dovresti avere nomi di dominio gratuiti o a pagamento registrati presso un registrar di domini di tua scelta. Assicurati che i domini puntino al tuo server configurando i record DNS. Tuttavia, puoi comunque utilizzare le nostre configurazioni per seguire i passaggi di questo tutorial. Utilizzeremo example.dev e mydomain.com per questo tutorial. Sei libero di sostituirli con i tuoi. Se decidi di utilizzare i domini di prova, i file hosts su Apache devono essere modificati per gestire i domini. Vedremo come fare più avanti nel tutorial.

Passo 1 – Configurazione delle directory del sito web

Queste sono le directory che contengono i dati del sito a cui accederanno i visitatori del tuo sito web. La document root di Apache accessibile da Internet si trova solitamente in /var/www. Qui è dove creeremo le directory per i singoli domini che vogliamo ospitare. In ciascuna delle directory, aggiungeremo la directory public_html per contenere i file effettivi del sito web. L'host virtuale punta alla directory public_html. Questo ti offre flessibilità poiché puoi tenere i file cruciali del sito web all'esterno di public_html e inserire all'interno solo i file pubblici.

Successivamente, inserisci i comandi seguenti per creare le directory. Ricorda sempre di sostituire i domini di prova con i tuoi domini effettivi per le configurazioni successive:

Passo 2 – Modifica dei permessi di lettura-scrittura

I comandi precedenti hanno creato la struttura delle directory ma hanno mantenuto la proprietà dell'utente root. Vogliamo che il nostro utente non-root abbia i permessi completi di lettura e scrittura sulle directory. Vogliamo anche che il web in generale abbia i permessi di lettura.

Per prima cosa, cambia la proprietà all'utente non-root inserendo il seguente comando:

La variabile $USER acquisisce le credenziali dell'utente attualmente connesso. L'utente normale ora ha la proprietà di public_html. Successivamente, è necessario concedere i permessi di lettura al web generale. Il seguente comando consente il permesso a tutti i file nella directory garantendo che le pagine web siano servite correttamente:

Eseguendo i tre comandi precedenti, il tuo sito web può ora servire contenuti. Inoltre, il tuo utente può ugualmente creare contenuti da servire nelle directory specifiche. Qui puoi trovare maggiori informazioni sui permessi di Ubuntu.

Step 3 – Creare pagine demo nelle directory per ciascun host virtuale

Con la struttura delle directory pronta, è il momento di fare un po' di scripting. Utilizzeremo HTML e l'editor di testo nano per creare alcune pagine web di base. Inserisci il seguente comando per aprire nano e creare un file index.html nella directory del primo dominio:

Nell'editor, inserisci il seguente codice di esempio che verrà mostrato quando accediamo al dominio:

Dopo aver incollato le righe precedenti, premi “!wq” per salvare e uscire dal file.

Crea la pagina index.html per il secondo dominio utilizzando l'editor nano inserendo il seguente comando:

Quindi, nell'editor, incolla il seguente codice HTML, salva ed esci:

 

Ora hai le pagine per testare i due host virtuali che andremo a creare nel prossimo passo.

Passo 4 – Creare i file di host virtuale per i nomi di dominio

I file di host virtuale contengono le configurazioni per ciascun host virtuale. Definiscono come verrà servito un nome di dominio. Una nuova installazione di Apache include un file di host virtuale predefinito chiamato 000-default.conf che possiamo utilizzare e adattare ai nostri domini. Come puoi vedere, termina con l'estensione .conf, che è ciò che Ubuntu si aspetta per i file di configurazione.

I file di configurazione di Apache si trovano nella directory /etc/apache2/sites-available. Lì memorizzeremo i nostri file di host virtuale. Possiamo copiare il file conf predefinito e modificarlo dove necessario.

  • Crea il primo file di host virtuale per il dominio example.dev

Inserisci il seguente comando per creare example.dev.conf copiando il file conf predefinito:

Successivamente, apri il file creato utilizzando l'editor nano con i privilegi sudo tramite il seguente comando:

Il file conf predefinito si presenta come nello screenshot qui sotto. I commenti servono a guidarti. Possiamo rimuoverli e lasciare solo il file pulito con le righe di configurazione effettive:

default configuration

È necessario personalizzare questo file per il proprio nome di dominio e il percorso della directory in cui sono stati salvati i file del sito web. Inoltre, aggiorneremo e aggiungeremo diverse direttive al file. Contiene già una direttiva ServerAdmin, che contiene l'indirizzo email su cui l'amministratore del server riceverà le email. Ha anche una direttiva DocumentRoot, che punta alla directory in cui sono stati memorizzati i file del sito web.

Dobbiamo aggiungere due nuove direttive: ServerName e ServerAlias. ServerName imposta il nome di dominio di base. È dove inserisci il tuo dominio. ServerAlias definisce altri nomi che Apache dovrebbe far corrispondere come se fossero il nome di dominio di base. Ti consente di far corrispondere host come www.

Aggiorna il file in modo che appaia come mostrato di seguito:

Successivamente, aggiorna i tuoi domini e la tua email in modo appropriato. Una volta fatto, premi CTRL + O e INVIO per salvare il file. Per uscire dall'editor, premi CTRL + X.

  • Crea il primo file di host virtuale per il dominio mydomain.com

Possiamo semplicemente copiare l'host virtuale per il primo dominio e aggiornarlo dove necessario per il secondo dominio. Usa il seguente comando per copiare il file:

Quindi, aprilo nell'editor nano usando il comando:

Trova le direttive e aggiornale in modo appropriato in modo che il file appaia come mostrato di seguito:

Una volta fatto, salva il file ed esci dall'editor.

Passaggio 5 – Abilitazione dei file di host virtuale

Nel passaggio quattro, abbiamo creato i file di host virtuale. Tuttavia, non sono funzionanti finché non li abiliti. Apache ha uno strumento chiamato a2ensite che useremo per abilitare gli host virtuali.

Inserisci i seguenti due comandi per abilitare gli host virtuali:

L'output dei comandi sopra indicati è come mostrato di seguito:

Apache еnable configuration

Successivamente, dovresti disabilitare il file di configurazione predefinito; utilizziamo lo strumento Apache a2dissite per disabilitare i siti. Inserisci il seguente comando:

Come si vede dall'output, è necessario riavviare Apache affinché le configurazioni vengano applicate. Usa il seguente comando:

Quindi, controlla lo stato di Apache utilizzando il seguente comando:

L'output mostra che il tuo server è attivo e funzionante, ed è in grado di gestire i due siti web.

Apache 2 status

Passaggio 6 – Modificare gli host locali con i domini di esempio

Se non hai registrato un dominio reale ma stai invece utilizzando domini di test, dovrai aggiornare i file host locali. Questi devono intercettare il traffico e indirizzarlo alla directory del tuo sito web quando navighi su uno qualsiasi dei domini impostati nei file dei virtual host. Ricorda che questo funzionerà solo sul tuo computer locale. Se il tuo computer locale esegue un sistema operativo Windows, allora segui le istruzioni per configurare gli host su questo link.

Se ti trovi su una macchina Mac o Linux, il file hosts si trova nella directory /etc. Useremo l'editor nano per aprirlo e aggiungere i nostri domini di test. Per prima cosa, trova l'indirizzo IP del tuo VPS inserendo il seguente comando:

Inserisci il seguente comando per aprire il file e aggiornarlo con l'indirizzo IP del tuo server:

Quindi, salva e chiudi il file. Ogni volta che inserisci un nome di dominio nel tuo browser, viene prima controllato il file host. Se il nome di dominio viene trovato, il traffico viene indirizzato all'indirizzo IP specificato. Se non viene trovato, viene utilizzato il sistema DNS per il reindirizzamento globale. Per i nostri domini di test, il traffico sarà indirizzato all'indirizzo IP specificato.

Passaggio 7 – Testare i Virtual Host

Con i nomi di dominio configurati, puoi verificare se funzionano controllandoli nel browser/terminale:

L'output dovrebbe mostrare qualcosa del genere:
curl example.dev

Apache curl mydomain.com

Congratulazioni! Hai configurato con successo due siti web per l'esecuzione su un unico server.

Conclusione

In questa guida hai imparato come configurare il tuo server Apache per gestire più di un sito web. Se desideri aggiungere altri siti web, puoi farlo seguendo i passaggi e configurando i virtual host. Apache può gestire tutti i domini che desideri, a patto che le risorse del tuo server siano in grado di supportarli.

Buon computing!

author

Akshay Nagpal

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.