NGINX è un popolare software open source per erogare blog e siti web, come quello sul quale risiede la presente guida. In altre parole, NGINX è un server web alternativo al più conosciuto Apache HTTP Server. In questa guida vedremo dunque come installare NGINX su Ubuntu (Linux) e come configurare tutto quanto per pubblicare immediatamente il tuo sito web

Trattazione parzialmente riscritta e aggiornata a settembre 2024 per funzionare al meglio con Ubuntu 24.04

Sebbene NGINX (si pronuncia "engin-ex") sia disponibile anche per Windows, è ottimizzato e realmente consigliabile per l'uso "in produzione" solo su server Linux. La procedura seguente è stata testata su Ubuntu 24.04, 22.04 e 20.04 (sia "Desktop", sia "Server"), ma è analoga per tutte le distribuzioni derivate (fra le quali "Mint") e, presumibilmente, per le iterazioni successive.

Se preferisci Apache HTTP Server, guarda invece quest'altro articolo dedicato: Guida definitiva: come installare Apache su Ubuntu

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video) - COME INSTALLARE UN SERVER WEB La Guida Definitiva per configurare NGINX cover

Preparare il server

Per seguire questa guida hai bisogno di un sistema con Ubuntu, preferibilmente la più recente versione "LTS", sul quale installare NGINX. Alcune soluzioni sono:

  • installarlo direttamente sul PC locale, se già monta Ubuntu "desktop"
  • predisporre una macchina virtuale (VM)
  • predisporre un container con Docker
  • installare Ubuntu Server su un vecchio PC, poi installare NGINX su quello

Sono tutte soluzioni valide, se stai solo "smanettando" o per imparare, ma che richiedono comunque un po' di tempo e che si riveleranno poco pratiche quando vorrai rendere accessibile il tuo sito pubblicamente da Internet.

La soluzione migliore è l'acquisto di un Virtual Private Server (VPS), cioè una macchina virtuale in cloud fornita da un operatore di settore. Si parla di una spesa di pochi euro al mese, a fronte della quale sarai operativo immediatamente.

Connessione SSH

Devi poi connetterti al server sul quale vuoi installare NGINX tramite SSH. Abbiamo visto la procedura completa in questo approfondimento dedicato:

» Leggi: SSH con Windows, Linux, Mac: la Guida Definitiva - Come accedere a un VPS, server cloud AWS/Azure o server aziendale con facilità (video)

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video) - guida ssh spotlight

Valuta di configurare la connessione SSH per entrare senza password. Non è indispensabile, ma sicuramente ti semplifica molto la vita:

» Leggi: [guida] Come creare una chiave SSH da PC Windows, Linux, Mac e accedere ai server senza password

Da qui in poi daremo per scontato che tu abbia predisposto il tuo server e che ti sia connesso con successo in SSH.

Installare NGINX su Linux Ubuntu: Installazione completamente automatica

Chiariamo subito che è possibile installare NGINX direttamente tramite apt, poiché il pacchetto di NGINX è disponibile nei repository nativi di Ubuntu. Ma, personalmente, ti stra-raccomando di NON farlo: la versione che si installa in questo modo non è aggiornata, e in passato mi è capitato che fosse interessata da problemi significativi. Piuttosto: io consiglio di utilizzare il repository ufficiale gestito dal team che sviluppa NGINX, e che fornisce build altrettanto stabili, ma costantemente aggiornate con tutte le nuove funzionalità e correzioni: anche TurboLab.it viene erogato proprio in questo modo da molti anni, e non abbiamo mai incontrato problemi.

Per installare NGINX su Ubuntu tramite i repository ufficiali di NGINX in modo completamente automatico basta impartire questo singolo comando sul tuo server:

sudo apt update && sudo apt install curl -y && curl -sL https://turbolab.it/scarica/358 | sudo bash

In caso fosse richiesta la password, digita quella associata al tuo utente Linux sul server

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Il comando appena impartito esegue uno script (visualizzabile qui) che svolge in sequenza tutte le tediose operazioni (presentate di seguito) che, altrimenti, dovresti svolgere manualmente.

Al termine, puoi lanciare in successione questi due comandi dal server stesso per tentare di connetterti:

curl http://127.0.0.1

curl -k https://127.0.0.1

Se, in risposta, viene visualizzato codice HTML, significa che l'installazione è riuscita

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Tecnicamente, i messaggi di risposta che vedi sono errori, ma, in questo momento, non importa. Quello che conta è che il server web risponda, come effettivamente avviene!

Nei prossimi paragrafi vedremo la procedura alternativa per svolgere manualmente gli stessi passaggi che lo script ha eseguito automaticamente. Se hai usato lo script, puoi saltare tutto e riprendere dal paragrafo Attivare un nuovo sito, più sotto.

Installare NGINX su Linux Ubuntu, Passo 1: Diventare root

La procedura tramite script descritta ai paragrafi precedenti installa NGINX automaticamente ed è la modalità che, personalmente, ti raccomando. Se però preferisci installare NGINX manualmente, puoi ottenere un risultato analogo seguendo i passaggi forniti di seguito.

Per prima cosa, devi acquisire i privilegi massimi diventando root sul server nel quale desideri installare NGINX. Il comando è:

sudo -s

In caso fosse richiesta la password, digita quella associata al tuo utente Linux sul server

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

» Leggi anche: Sudo senza password con Ubuntu: come disabilitare la richiesta di password quando si eseguono comandi come root (video)

Installare NGINX su Linux Ubuntu, Passo 2: Disinstallare... Nginx

Prima di proseguire, è opportuno verificare che NGINX non sia già stato installato, magari senza utilizzare il repository ufficiale degli sviluppatori di NGINX:

dpkg --list | grep nginx

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Se il comando non mostra alcuna risposta, puoi tranquillamente andare oltre perché NGINX non è installato. In caso contrario, è fondamentale disinstallare il pacchetto corrente:

apt purge --auto-remove nginx* -y

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Raccomando caldamente di eliminare anche eventuali file di configurazione relativi alla precedente installazione, di modo da partire con una situazione pulita:

rm -rf /etc/nginx

Installare NGINX su Linux Ubuntu, Passo 3: Installare i pre-requisiti

NGINX richiede la presenza di altri pacchetti, che devono essere installati manualmente. Il comando per ottenerli tutti in un colpo solo, insieme alle altre utility che serviranno fra poco, è il seguente:

apt update && apt install software-properties-common curl gnupg2 ca-certificates lsb-release ubuntu-keyring openssl zip unzip nano -y

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 4: Aggiungere la firma digitale

Importa la chiave digitale utilizzata dal team di sviluppo di NGINX per firmare i pacchetti:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Verifica che sia veramente quella attesa:

gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Per la massima sicurezza dovresti confrontare l'hash mostrato a schermo con quello riportato sul sito ufficiale. Se però vuoi saltare questa verifica e procedere spedito, assicurati quantomeno che sia presente la dicitura nginx signing key <signing-key@nginx.com>

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 5: Aggiungere il repository ufficiale

Finalmente, possiamo aggiungere il repository ufficiale di NGINX alla lista di fonti note ad apt impartendo questo lungo comando:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

Quello che succede, in pratica, è che viene creato il file /etc/apt/sources.list.d/nginx.list contenente l'URL del repository ufficiale di NGINX per la specifica versione di Ubuntu in uso

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 6: Alzare la priorità del repository

Come ultimo step, è necessario configurare il sistema di modo che prelevi il pacchetto di NGINX dal repository appena aggiunto, e non da quello predefinito di Ubuntu. Il comando è:

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 7: Installazione del pacchetto

Siamo ora pronti ad installare NGINX tramite questi due comandi concatenati:

apt update && apt install nginx -y

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 8: Aggiungere nginx al gruppo www-data

Per massimizzare la sicurezza e semplificare la gestione del server è opportuno aggiungere l'utente di sistema chiamato nginx, cioè quello che risponde alle richieste dei client, al gruppo di sistema chiamato www-data. Allo scopo, basta impartire:

usermod -aG www-data nginx

Installare NGINX su Linux Ubuntu, Passo 9: Prima esecuzione

NGINX è ora installato, ma il suo processo non è ancora in esecuzione. Avvialo ora, impartendo semplicemente:

service nginx restart

Installare NGINX su Linux Ubuntu, Passo 10: Test del servizio

Il web server è ora attivo e mostra una pagina di benvenuto "standard" a tutti i client che vi si colleghino. Per verificarlo, impartisci questo comando dal server stesso:

curl http://localhost

Se la risposta è composta da una serie di tag HTML fra i quali si legge qualcosa di simile a <title>Welcome to nginx!</title>, tutto sta funzionando correttamente

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Installare NGINX su Linux Ubuntu, Passo 11: Generare un certificato per attivare HTTPS

Il web moderno funziona via HTTPS (con la "s" finale), e quindi anche il nostro server web deve fare lo stesso. Generiamo dunque un certificato HTTPS da utilizzare con tutti i siti erogati dal nostro server. Tale certificato, bene inteso, sarà self-signed, ovvero "di test", e farà scattare un avviso nel browser web: ma è comunque meglio rispetto ad utilizzare HTTP "semplice", e sarà comunque facile sostituirlo con un certificato "reale" in seguito.

Prima creiamo la cartella:

mkdir -p /usr/local/turbolab.it/webstackup/autogenerated

[ nota: puoi scegliere un percorso qualsiasi, ma nel seguito utilizzeremo quello indicato nell'esempio. Raccomando di non modificarlo, per il momento, altrimenti diventa difficile seguire la guida ]

Poi generiamo una chiave crittografica:

openssl genrsa -out /usr/local/turbolab.it/webstackup/autogenerated/openssl-private-key.pem

Infine, usiamola per generare il certificato HTTPS vero e proprio:

openssl req -x509 -out /usr/local/turbolab.it/webstackup/autogenerated/https-localhost.crt -key /usr/local/turbolab.it/webstackup/autogenerated/openssl-private-key.pem -days 3650 -new -nodes -sha256 -subj "/CN=localhost"

Visualizziamo ora il contenuto della cartella:

ls -la /usr/local/turbolab.it/webstackup/autogenerated

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Troverai due file:

  • https-localhost.crt: è il certificato HTTPS vero e proprio
  • openssl-private-key.pem: è la chiave crittografica utilizzata per generarlo

Ci serviranno entrambi più avanti.

Installare NGINX su Linux Ubuntu, Passo 12: Redirect automatico da HTTP a HTTPS

Facciamo ora in modo che tutte le richieste in HTTP (senza la "s" finale) inviate al nostro server generino un redirect verso l'equivalente sito in HTTPS (con la "s" finale). Allo scopo, scarichiamo la configurazione già pronta all'uso (disponibile qui) direttamente nella cartella delle configurazioni di NGINX tramite il seguente comando:

curl -LO --output-dir /etc/nginx/conf.d/ https://raw.githubusercontent.com/TurboLabIt/webstackup/master/config/nginx/00_global_https_upgrade_all.conf

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Il comando scarica il file in /etc/nginx/conf.d/00_global_https_upgrade_all.conf.

Installare NGINX su Linux Ubuntu, Passo 13: Disattivare il sito di default

La pagina di cortesia con il testo Welcome to NGINX visualizzata in precedenza è comoda per verificare che NGINX funzioni subito dopo l'installazione, ma poi andrebbe rimossa. Tornati alla linea di comando, disattiviamo la configurazione che mostra quella pagina, spostandola fuori dalla cartella che contiene tutte le configurazioni:

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d_default_original_backup.conf

Al suo posto, facciamo in modo che il server web ritorni un errore HTTP con codice "400" ogni volta che viene richiesto un dominio non esplicitamente configurato. Allo scopo, otteniamo la configurazione già pronta all'uso (disponibile qui) tramite il comando seguente:

curl -LO --output-dir /etc/nginx/conf.d/ https://raw.githubusercontent.com/TurboLabIt/webstackup/master/config/nginx/05_global_default_vhost_disable.conf

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Il comando scarica il file in /etc/nginx/conf.d/05_global_default_vhost_disable.conf.

Installare NGINX su Linux Ubuntu, Passo 14: Creare una nuova "home" per www-data

Per convenzione, i file che compongono i vari siti web erogati dal sistema vanno salvati in una cartella dedicata sotto a /var/www. Ne parleremo fra un attimo.

Al momento, però, questo stesso percorso è anche la "home" dell'utente Linux "di sistema" chiamato www-data.

Ne consegue che, in seguito ad alcune azioni, potrebbero comparire in /var/www alcuni file temporanei e altre cartelle relative alle preferenze dell'utente. Non ci piace, per nulla.

Per risolvere il problema, creiamo una cartella dedicata e impostiamola come home per l'utente www-data tramite questo lungo comando concatenato:

mkdir -p /home/www-data && chown www-data:www-data /home/www-data -R && chmod ug=rwx,o= /home/www-data -R && usermod -d /home/www-data www-data

Da qui in avanti, eventuali file generati automaticamente da www-data finiranno qui dentro. Molto meglio!

Installare NGINX su Linux Ubuntu, Passo 15: Creare l'utente "webstackup" (gestione del sito)

Per migliorare la sicurezza, creiamo un nuovo utente sul sistema, che sarà poi l'unico autorizzato a modificare i file che compongono i siti. Questo utente è diverso da quello utilizzato da NGINX. Così facendo, anche in caso un aggressore riuscisse a trovare una falla in uno dei siti web erogati, non potrebbe comunque scrivere file su disco, e avrebbe quindi spazio di manovra limitato per le proprie attività nefaste.

Chiamiamo questo nuovo utente webstackup, e lo creiamolo tramite il seguente comando:

useradd webstackup -g www-data --shell=/usr/sbin/nologin --create-home --system

[ nota: puoi scegliere il nome che preferisci, ma di seguito utilizzeremo quello indicato nell'esempio. Raccomando di non modificarlo, per il momento, altrimenti diventa difficile seguire la guida ]

Installare NGINX su Linux Ubuntu, Passo 16: Creare la cartella con i progetti web

Come dicevamo, i file che compongono i vari siti web erogati vanno salvati in una sotto-cartella dedicata di /var/www. Il sito che stai leggendo ora, ad esempio, è ospitato veramente sotto /var/www/turbolab_it!

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Creiamo dunque la cartella /var/www:

mkdir -p /var/www/

Modifichiamo ora i suoi permessi di modo che:

  • l'utente webstackup (creato poco fa) possa leggere e scrivere i file
  • tutti gli altri utenti possano solo leggere i file già presenti

I comandi da impartire in sequenza sono:

  • chown webstackup:www-data /var/www -R
  • chmod ugo= /var/www -R
  • chmod u=rwX,go=rX /var/www -R

Come ultima "finezza", lanciamo il comando seguente per fare in modo che tutti i nuovi file creati nella cartella vengano automaticamente assegnati al gruppo www-data:

chmod g+s /var/www

Quest'ultimo dettaglio non ha effetti immediati, ma tornerà utile in futuro.

(riprendi da qui se hai usato lo script automatico!) Attivare un nuovo sito

A scopo didattico, procederemo a configurare sul tuo server un sito che risponderà al dominio example.com e sarà dunque raggiungibile via browser web digitando http://example.com. In seguito, dopo aver preso dimestichezza con questa configurazione di esempio, potrai attivare il tuo sito "reale".

La procedura si divide nelle seguenti fasi:

  1. configurare il DNS affinché risolva il nome a dominio nell'indirizzo IP del tuo server
  2. preparare una cartella contenente i file che compongono il sito
  3. configurare NGINX affinché eroghi ai visitatori i file del sito
  4. ricaricare la configurazione

Attivare un nuovo sito con NGINX: configurare il DNS

Se tu stessi configurando un sito web per rispondere a un dominio che controlli, dovresti configurare il DNS affinché risolva il nome a dominio nell'indirizzo IP del tuo server. Questo generalmente si fa dal pannello web dell'azienda presso la quale hai registrato il dominio stesso. Nell'esempio seguente vediamo la configurazione reale che ho svolto per far sì che il dominio turbolab.it venga risolto nel relativo indirizzo IP del server, 95.141.32.225

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Ma, siccome ora stiamo facendo una prova con il dominio example.com di cui non abbiamo il controllo, dobbiamo configurare questa stessa risoluzione solo sul nostro PC locale. Allo scopo, procediamo modificando il file hosts del PC locale, così come mostrato nella guida dedicata:

» Leggi: La Grande Guida al file hosts: che cos'è, a cosa serve e come modificarlo per bloccare siti e domini (Windows, Linux, Mac, Android)

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video) - come modificare file hosts spotlight

Nello specifico, vogliamo accodare al file hosts una riga che forzi la risoluzione del dominio example.com nell'indirizzo IP del nostro server sul quale abbiamo installato NGINX. Così facendo, tutte le volte che proveremo a contattare example.com dal nostro PC locale, risponderà il nostro server con NGINX.

Il mio server di test con NGINX, ad esempio, ha indirizzo IP 192.168.0.74. Aggiungo quindi al mio file hosts questa riga:

192.168.0.74 example.com www.example.com

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Nota che ho messo sia example.com (senza "www") sia www.example.com (con "www"), in modo che entrambi i domini vengano risolti sull'indirizzo IP del mio server con NGINX. Questo consentirà al server con NGINX di ricevere sia le richieste di http://example.com (senza "www"), sia di http://www.example.com (con "www").

Nel tuo caso, ovviamente, dovrai indicare lo specifico indirizzo IP del server sul quale hai installato NGINX.

Se vuoi verificare al volo che la modifica abbia avuto l'effetto sperato, apri una nuova istanza di Terminale sul tuo PC locale e prova a "pingare" il dominio:

ping example.com

Se vedi comparire l'indirizzo IP del tuo server con NGINX, la modifica è andata a buon fine

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Ricorda soltanto che:

  • la modifica del file hosts ha effetto istantaneamente
  • la modifica al DNS di un dominio "reale" può richiedere diverse ore per propagarsi

Se il ping funziona, puoi provare ad aprire il dominio tramite browser web. Probabilmente riceverai un errore di sicurezza simile a La tua connessione non è privata

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Ma va bene così. Se riesci ad ignorare l'errore e proseguire, dovresti ricevere un secondo errore, 400 Bad Request, questa volta servito proprio dal tuo NGINX

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Va benissimo così! Dipende solo dal fatto che ancora non abbiamo configurato il relativo sito, e quindi NGINX non sa cosa mostrare.

Attivare un nuovo sito con NGINX: preparare una cartella con i file del sito

Per convenzione, i file che compongono i vari siti web erogati dal nostro server web vanno salvati in una cartella dedicata sotto a /var/www. Una cartella per ogni sito.

Nella situazione attuale, però, l'accesso alla cartella /var/www è limitato. Con il tuo utente "regolare", quindi, puoi leggere i file, ma non modificarli. Ovviamente potresti aggirare il problema lavorando direttamente con l'utente "root", colui che tutto può, ma è pericoloso e te lo sconsiglio.

Piuttosto: per lavorare in /var/www devi acquisire i privilegi dell'utente adibito alla manutenzione dei siti, che abbiamo chiamato webstackup. Il comando per farlo è:

sudo -u webstackup -H bash

Fino a quando sarai in questa shell, potrai leggere e scrivere liberamente i file e le cartelle sotto /var/www.

Poiché stiamo configurando il sito example.com, chiameremo la cartella allo stesso modo. Il comando per crearla è:

mkdir /var/www/example.com

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Ora: per essere super-veloci, procedi scompattando qui dentro l'archivio zip che ho preparato e che contiene alcuni file HTML di esempio. Il comando è il seguente:

curl -Lo /var/www/example.com/sito.zip https://turbolab.it/scarica/145 && unzip -o /var/www/example.com/sito.zip -d /var/www/example.com/ && rm -f /var/www/example.com/sito.zip

Per verificare che l'operazione sia andata a buon fine, puoi impartire prima ls -la /var/www per assicurarti che esista la cartella example.com, poi ls -la /var/www/example.com per vedere la lista dei file di esempio estratti dall'archivio

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Fra questi, nota index.html: è quello che visualizzeremo, fra poco, via browser web.

Attivare un nuovo sito con NGINX: configurare NGINX

Devi ora configurare NGINX affinché risponda alla richiesta HTTP di example.com restituendo al browser del visitatore i file presenti in /var/www/example.com. Allo scopo, si crea un nuovo file di configurazione all'interno della cartella /etc/nginx/conf.d/.

Poiché stiamo configurando il sito example.com, chiameremo il nostro file di configurazione example.com.conf. Ricordati sempre di specificare il .conf finale, o il file sarà ignorato.

Per procedere in velocità puoi ottenere il file di configurazione che ho già preparato io. Ma l'utente webstackup che stiamo usando in questo momento non ha privilegi sufficienti né per scrivere in /etc/nginx/conf.d/, né per eseguire sudo (e non deve averli!). Devi quindi:

  1. aprire una nuova finestra di terminale sul tuo PC locale e collegarti nuovamente in SSH al tuo server web
  2. eseguire sudo -s per ottenere i privilegi di root
  3. da lì, puoi lanciare:

curl -Lo /etc/nginx/conf.d/example.com.conf https://turbolab.it/scarica/282

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Apri ora il file di configurazione appena scaricato:

nano /etc/nginx/conf.d/example.com.conf

Probabilmente non c'è nulla da modificare, ma devo spiegarti il significato delle varie impostazioni affinché tu possa usarlo, in futuro, come modello per creare nuovi siti.

  • server_name: example.com: indica qual è il dominio gestito da questa specifica configurazione. Nel file che hai scaricato è impostato a example.com per gestire le richieste relative al sito https://example.com. Se in futuro vorrai gestire un tuo dominio (mio-sito.com, ad esempio) dovrai indicarlo qui
  • root: /var/www/example.com: indica dove si trovano i file che compongono il sito web. Nella configurazione che hai davanti è indicato /var/www/example.com, cioè la cartella che abbiamo creato in precedenza e nella quale abbiamo estratto l'archivio con i file di test
  • listen: indica la porta TCP. A meno di situazioni molto particolari, deve essere mantenuto sempre così com'è
  • ssl_certificate e ssl_certificate_key: fanno riferimento al certificato HTTPS e alla relativa chiave. Nel file che hai scaricato utilizziamo un certificato "self-signed"

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Poco sotto, trovi anche un secondo blocco server{}. Come probabilmente hai già capito dalla presenza della direttiva server_name: www.example.com, questo secondo blocco serve a gestire le richieste rivolte a https://www.example.com (con "www") tramite la seconda direttiva, return 301 https://$host$request_uri, che causa un redirect del browser del visitatore verso il dominio senza "www".

Per gli scopi attuali non devi modificare nulla. Ti basta capire il significato dei parametri, poi battere la combinazione Ctrl+X sulla tastiera per uscire.

Attivare un nuovo sito con NGINX: Ricaricare il servizio

Ora che la configurazione del nuovo sito è pronta, dobbiamo svolgere un "reload", cioè l'operazione che ricarica la configurazione di NGINX senza bisogno di riavviare del tutto il servizio, e senza quindi causare alcun disservizio ai client connessi.

Per ricaricare NGINX senza disservizi dopo aver modificato la sua configurazione, usa SEMPRE questo specifico comando concatenato:

nginx -t && service nginx reload

Ricordati di farlo dalla shell dell'utente "root" (l'ultima che hai aperto), e non da quella dell'utente webstackup, che non ha i privilegi adeguati.

Utilizzando il comando che ti ho indicato, NGINX verifica prima che la nuova configurazione sia corretta, e solo se va tutto bene effettua il reload, altrimenti mostra i dettagli degli errori, di modo da aiutarti a capire dove devi intervenire.

Visualizzare il tuo sito con il browser web

Ora è davvero tutto pronto. Apri di nuovo il browser web sul tuo PC locale e prova ad aprire il sito. Se hai seguito il tutorial fino a qui, ti basta cliccare su questo link: http://example.com

Probabilmente riceverai un errore di sicurezza simile a La tua connessione non è privata...

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Ma va bene così. Se riesci ad ignorare l'errore e proseguire, dovresti riuscire a vedere, tramite il browser web, la pagina di test che era presente nell'archivio che hai scaricato

Come installare NGINX Ubuntu - Guida Definitiva configurare Server Web Linux (video)

Complimenti, funziona!

Modificare la pagina HTML

Prova ora a modificare, tramite la shell dell'utente webstackup che dovresti ancora aver aperto sul server, il file HTML che stai visualizzando:

nano /var/www/example.com/index.html

Fai qualche modifica, salva, poi ricarica la pagina nel browser per vedere le modifiche apportate - Ricordo che la sequenza di combinazioni da tastiera per salvare e uscire dall'editor sul terminale è Ctrl+O, Invio, Ctrl+X.

Aggiungere nuove pagine

Tanto per capire meglio come funziona l'installazione attuale, svolgi questo semplice esercizio:

  1. copia il file: cp /var/www/example.com/index.html /var/www/example.com/pagina1.html
  2. usando l'editor di testi, apri la copia appena creata: nano /var/www/example.com/pagina1.html
  3. scrivi qualcosa a piacere (anche solo Ciao a tutti! va benissimo) e poi salva le modifiche
  4. da browser web, sul tuo PC, apri http://example.com/pagina1.html
  5. visualizzerai così il contenuto della nuova pagina

In definitiva: accodando il nome del file desiderato all'indirizzo http://example.com/, il browser richiede detto file al server web. Se il file esiste nella cartella del sito, NGINX lo ritorna al browser, che lo interpreta e lo mostra.

Erogare molteplici siti dallo stesso server

La configurazione attuale funziona perché abbiamo configurato esplicitamente tutto quanto per rispondere a http://example.com. Come dicevamo, puoi sempre aggiungere altri siti semplicemente ripetendo esattamente gli stessi passaggi visti al precedente passo Attivare un nuovo sito.

Cosa fare ora?

Arrivati a questo punto, NGINX su Linux è perfettamente configurato e funzionante. Probabilmente, però, vorrai ottenere un certificato HTTPS valido, di modo da non mostrare l'errore di sicurezza ai visitatori, poi installare PHP e MySQL di modo da eseguire un gestore di contenuti (CMS) come WordPress e creare il tuo blog, oppure imparare a programmare. Per il resto della guida:

» Leggi: Installare e configurare un server web: La Grande Guida ad Apache, MySQL, PHP su Windows e Linux in modo facile