Guida all'installazione di Nginx: passo dopo passo per principianti

Padroneggia la configurazione iniziale del tuo server web ad alta velocità! Questa guida completa accompagna i principianti attraverso l'installazione precisa, passo dopo passo, di Nginx sia sui sistemi Debian/Ubuntu che su quelli CentOS/RHEL. Impara i comandi essenziali per avviare, arrestare e verificare il servizio, oltre alla configurazione cruciale del firewall per garantire l'accessibilità immediata. Metti in funzione il tuo server web Nginx in pochi minuti.

Guida all'installazione di Nginx: Passo dopo passo per principianti

Hai bisogno di Nginx installato, in esecuzione e raggiungibile prima di poterlo utilizzare come server web, proxy inverso, bilanciatore di carico o cache. Questa guida all'installazione di Nginx illustra la configurazione di base tramite il gestore di pacchetti su sistemi Linux Debian/Ubuntu e RHEL, quindi mostra come verificare il servizio e aprire il firewall.

I comandi seguenti presuppongono un server basato su systemd e un utente con accesso sudo.


Prerequisiti

Prima di iniziare, assicurati di avere:

  • Un server o una macchina virtuale con Ubuntu, Debian, RHEL, CentOS Stream, Rocky Linux, AlmaLinux o una distribuzione simile.
  • Un utente non root con privilegi sudo.
  • Accesso alla shell tramite SSH o un terminale locale.

Installazione su sistemi Debian/Ubuntu

Sui sistemi basati su Debian, Nginx è disponibile nei repository predefiniti. Aggiorna prima l'indice dei pacchetti in modo che apt veda i metadati correnti dei pacchetti.

Passo 1: Aggiornare le liste dei pacchetti

Esegui i seguenti comandi per aggiornare l'indice locale dei pacchetti:

sudo apt update

Passo 2: Installare Nginx

Usa il comando apt install per scaricare e installare Nginx e le sue dipendenze:

sudo apt install nginx

Passo 3: Verificare lo stato dell'installazione

Una volta completata l'installazione, il servizio viene solitamente avviato automaticamente. Puoi verificarne lo stato usando systemctl:

sudo systemctl status nginx

Dovresti vedere un output che indica che il servizio è active (running).

Installazione su sistemi CentOS/RHEL

Sui sistemi in stile RHEL, usa dnf sulle versioni correnti e yum su quelle più vecchie. Alcune distribuzioni includono Nginx nei propri repository; altre potrebbero aver bisogno di EPEL o di un repository ufficiale del fornitore. Se dnf install nginx non riesce a trovare il pacchetto, abilita EPEL o controlla le note di packaging di Nginx della tua distribuzione.

Passo 1: Installare il repository EPEL

Se il tuo sistema ha bisogno di EPEL, installalo prima.

Per CentOS/RHEL 7:

sudo yum install epel-release

Per CentOS/RHEL 8/9 (usando DNF):

sudo dnf install epel-release

Passo 2: Installare Nginx

Ora, installa Nginx usando yum o dnf:

# Usando yum (sistemi più vecchi)
sudo yum install nginx

# OPPURE usando dnf (sistemi più nuovi)
sudo dnf install nginx

Passo 3: Avviare e abilitare il servizio Nginx

A differenza di Debian/Ubuntu, Nginx potrebbe non avviarsi automaticamente dopo l'installazione sui sistemi basati su RHEL. Devi avviarlo manualmente e abilitarlo per l'esecuzione all'avvio del sistema:

# Avvia il servizio immediatamente
sudo systemctl start nginx

# Assicurati che si avvii al riavvio
sudo systemctl enable nginx

# Controlla lo stato
sudo systemctl status nginx

Configurazione del firewall: Consentire HTTP e HTTPS

Dopo l'installazione, assicurati che il tuo firewall permetta il traffico web. Se il servizio è in esecuzione ma la porta 80 o 443 è bloccata, il controllo dal browser dall'esterno del server fallirà.

Usando UFW su Ubuntu/Debian

Il pacchetto Nginx di Ubuntu solitamente registra i profili applicativi UFW. Apri sia HTTP che HTTPS se prevedi di aggiungere TLS a breve.

# Elenca i profili applicativi disponibili
sudo ufw app list

# Consenti il traffico web standard (HTTP/HTTPS)
sudo ufw allow 'Nginx Full'

# Ricarica il firewall per applicare le modifiche
sudo ufw reload

Usando Firewalld su sistemi in stile RHEL

Firewalld usa le zone per gestire le regole. Questi comandi aggiungono i servizi standard http e https alla zona predefinita attiva.

# Consenti il traffico HTTP (porta 80)
sudo firewall-cmd --permanent --add-service=http

# Consenti il traffico HTTPS (porta 443)
sudo firewall-cmd --permanent --add-service=https

# Ricarica le regole del firewall
sudo firewall-cmd --reload

Verificare che Nginx funzioni

Con il pacchetto installato e il firewall aperto, conferma che Nginx stia servendo la pagina predefinita.

Metodo 1: Controllo dal browser web

Apri il tuo browser web preferito e vai all'indirizzo IP del tuo server o al nome di dominio:

http://INDIRIZZO_IP_DEL_TUO_SERVER

Se ha successo, dovresti vedere la pagina di benvenuto predefinita di Nginx. Il testo esatto e il percorso del file variano a seconda della distribuzione.

Metodo 2: Controllo dalla riga di comando

Usa curl dal server stesso per controllare il listener locale:

curl http://localhost

Questo comando dovrebbe restituire HTML. Se fallisce localmente, controlla systemctl status nginx e /var/log/nginx/error.log prima di risolvere i problemi del DNS o delle regole del firewall cloud.

Comandi essenziali di gestione di Nginx

Una volta installato, di solito gestirai Nginx con systemctl:

Azione Comando
Avviare il server sudo systemctl start nginx
Fermare il server sudo systemctl stop nginx
Riavviare (Ferma poi Avvia) sudo systemctl restart nginx
Ricarica (Applica le modifiche alla configurazione senza tempi di inattività) sudo systemctl reload nginx
Controllare lo stato sudo systemctl status nginx
Disabilitare l'avvio automatico all'avvio sudo systemctl disable nginx

Testa la sintassi della configurazione prima di ogni ricarica:

sudo nginx -t
sudo systemctl reload nginx

Questa abitudine coglie punti e virgola mancanti, percorsi di inclusione errati e conflitti di listen duplicati prima che interrompano il traffico.

Passo successivo: Creare un blocco server

La configurazione predefinita serve una pagina di benvenuto fornita dal pacchetto. Su Debian/Ubuntu, i file web risiedono comunemente sotto /var/www/html. Sui sistemi in stile RHEL, la root predefinita è spesso /usr/share/nginx/html.

Il tuo prossimo passo è creare un blocco server per il tuo dominio. Le strutture di Debian/Ubuntu spesso usano /etc/nginx/sites-available/ con collegamenti simbolici in /etc/nginx/sites-enabled/. Le strutture in stile RHEL usano più spesso file sotto /etc/nginx/conf.d/.

Dopo di ciò, aggiungi TLS, punta il record DNS del tuo dominio al server ed esegui sudo nginx -t prima di ricaricare. A quel punto la tua installazione di Nginx è pronta per la configurazione reale del sito.