Come installare, configurare e ottimizzare Nginx su Ubuntu: Guida completa per principianti

1. Introduzione

Molti utenti sono interessati a utilizzare Nginx su Ubuntu, ma i principianti potrebbero non sapere da dove cominciare. Questo articolo fornisce una spiegazione chiara, passo‑passo—dall’installazione di Nginx su Ubuntu alla sua configurazione e gestione—anche se non hai alcuna esperienza pregressa.

Che cos’è Nginx?

Nginx (Engine‑X) è un server HTTP ad alte prestazioni e un server proxy inverso. Grazie alla sua architettura leggera e flessibile, è ampiamente usato nei server web e nelle applicazioni di tutto il mondo. La sua struttura è particolarmente adatta a gestire ambienti ad alto traffico.

Vantaggi dell’utilizzo di Nginx su Ubuntu

Ubuntu è una distribuzione Linux molto popolare, con eccellente compatibilità con Nginx. Poiché Ubuntu utilizza il sistema di gestione dei pacchetti APT, l’installazione e gli aggiornamenti sono semplici, e puoi contare su una forte stabilità e sicurezza.

Dopo aver letto questo articolo, comprenderai:

  • Come installare Nginx su Ubuntu
  • Le procedure di configurazione e gestione di base
  • Tecniche di ottimizzazione delle prestazioni e risoluzione dei problemi

Ora, cominciamo.

2. Installazione di Nginx su Ubuntu

Per eseguire Nginx su Ubuntu, è necessario installarlo correttamente. Questa sezione spiega i passaggi di installazione in modo chiaro e semplice.

Verifica dei pacchetti richiesti

Prima di installare Nginx, assicurati che il tuo sistema sia aggiornato. Esegui i seguenti comandi:

sudo apt update
sudo apt upgrade

Installazione di Nginx

Per installare Nginx, inserisci il comando seguente:

sudo apt install nginx

Questo comando scarica e installa Nginx direttamente dal repository APT di Ubuntu.

Verifica dell’installazione

Esegui il comando seguente per controllare se Nginx è stato installato correttamente:

sudo systemctl status nginx

Se lo stato mostra active (running), l’installazione è avvenuta con successo.

Configurazione del firewall

Ubuntu include UFW (Uncomplicated Firewall), che puoi utilizzare per consentire il traffico verso Nginx.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Nginx è ora pronto a comunicare sulla porta 80 (HTTP) e sulla porta 443 (HTTPS).

3. Configurazione di base di Nginx su Ubuntu

Installare Nginx da solo non è sufficiente—devi configurarlo correttamente per usarlo in modo efficace.

Posizione e struttura dei file di configurazione

Nginx utilizza i seguenti file di configurazione:

  • File di configurazione principale: /etc/nginx/nginx.conf
  • File di configurazione specifici per i siti: situati nella directory /etc/nginx/sites-available/

Di solito, crei i file di configurazione dei virtual host nella directory sites-available e poi crei collegamenti simbolici nella directory sites-enabled per attivarli.

Configurazione di un virtual host

I virtual host consentono a un singolo server di gestire più domini e progetti. L’esempio seguente configura example.com:

sudo nano /etc/nginx/sites-available/example.com

Inserisci la configurazione qui sotto:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Salva il file, quindi abilita la configurazione:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Configurazione di SSL/TLS

Per abilitare la comunicazione sicura, configura i certificati SSL/TLS. Puoi ottenere certificati gratuiti usando Let’s Encrypt.

Prima, installa certbot:

sudo apt install certbot python3-certbot-nginx

Quindi richiedi il certificato e applica le impostazioni automaticamente:

sudo certbot --nginx -d example.com -d www.example.com

Assicurati che il rinnovo automatico del certificato sia abilitato per evitare scadenze.

4. Avvio e gestione di Nginx

Una volta che Nginx è installato e configurato, devi imparare come avviarlo, fermarlo, ricaricarlo e risolverne i problemi. Questa sezione spiega i comandi amministrativi essenziali.

Comandi base di Nginx

Su Ubuntu, usa il comando systemctl per gestire Nginx:

  1. Avvia Nginx
    sudo systemctl start nginx
    
  1. Ferma Nginx
    sudo systemctl stop nginx
    
  1. Riavvia Nginx Usare quando vengono apportate modifiche importanti alla configurazione.
    sudo systemctl restart nginx
    
  1. Ricarica Nginx Applica le modifiche alla configurazione senza riavviare.
    sudo systemctl reload nginx
    
  1. Verifica lo stato di Nginx
    sudo systemctl status nginx
    

Abilita avvio automatico

Per avviare Nginx automaticamente dopo il riavvio del sistema:

  1. Abilita avvio automatico
    sudo systemctl enable nginx
    
  1. Disabilita avvio automatico
    sudo systemctl disable nginx
    

Controlli dei log e risoluzione dei problemi

Se Nginx non funziona come previsto, controlla i log:

  1. Log degli errori
    sudo tail -f /var/log/nginx/error.log
    
  1. Log di accesso
    sudo tail -f /var/log/nginx/access.log
    

Problemi comuni e soluzioni

  1. Nginx non si avvia
  • Causa: errori nel file di configurazione
  • Soluzione: bash sudo nginx -t Controlla gli errori di sintassi e correggili.
  1. Le modifiche non vengono applicate
  • Causa: Nginx non è stato ricaricato
  • Soluzione: Esegui sudo systemctl reload nginx dopo le modifiche.
  1. Porte non aperte
  • Causa: impostazioni del firewall
  • Soluzione: bash sudo ufw allow 'Nginx Full'

5. Impostazioni del firewall di Nginx e rafforzamento della sicurezza

La sicurezza è fondamentale quando si utilizza Nginx. Questa sezione spiega come configurare UFW e rafforzare la sicurezza di Nginx.

Apertura delle porte con UFW

UFW è installato di default su Ubuntu. Per abilitare la comunicazione di Nginx, apri le porte necessarie:

  1. Verifica lo stato di UFW
    sudo ufw status
    
  1. Applica le regole di Nginx
    sudo ufw allow 'Nginx Full'
    
  1. Abilita UFW
    sudo ufw enable
    

Ulteriori miglioramenti della sicurezza

  1. Disabilita metodi HTTP non necessari
    if ($request_method !~ ^(GET|POST|HEAD)$) {
        return 444;
    }
    
  1. Disabilita la visualizzazione delle directory
    autoindex off;
    
  1. Rafforza SSL/TLS
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;
    

6. Ottimizzazione delle prestazioni di Nginx e risoluzione dei problemi

Nginx è noto per le sue prestazioni, ma una corretta ottimizzazione può migliorarle ulteriormente. Questa sezione spiega come ottimizzare le risorse e risolvere i problemi comuni.

Ottimizzazione delle prestazioni

1. Configura i processi worker

Modifica /etc/nginx/nginx.conf e ottimizza il numero di processi worker:

worker_processes auto;

2. Aumenta le connessioni worker

worker_connections 1024;

3. Abilita HTTP/2

listen 443 ssl http2;
sudo systemctl reload nginx

4. Abilita la compressione

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Configura la cache

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Problemi comuni e soluzioni

1. Richieste lente sotto carico elevato

  • Causa: impostazioni insufficienti dei processi worker o delle connessioni
  • Soluzione: regola i parametri worker o introduce il bilanciamento del carico

2. Errore 403 Forbidden

  • Causa: percorso root errato o permessi non corretti
  • Soluzione:
  • Verifica la direttiva root e correggi i permessi usando:
  • bash sudo chmod -R 755 /var/www/example.com/html sudo chown -R www-data:www-data /var/www/example.com/html

3. Timeout del server

  • Causa: l’elaborazione della richiesta del client richiede troppo tempo
  • Soluzione:
    proxy_read_timeout 300;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    

4. Errori di riavvio

  • Causa: problemi di sintassi nella configurazione
  • Soluzione:
    sudo nginx -t
    

7. Riepilogo e prossimi passi

Questo articolo ha spiegato come installare, configurare e gestire Nginx su Ubuntu. Rivediamo ciò che hai imparato e identifichiamo i possibili prossimi passi.

Revisione dell’articolo

1. Installazione di Nginx su Ubuntu

  • Preparato i pacchetti necessari e imparato come installare Nginx usando APT
  • Configurato il firewall (UFW) per consentire il traffico Nginx

2. Configurazione di base

  • Imparate le posizioni dei file, la configurazione dell’host virtuale e la configurazione SSL/TLS

3. Operazioni di gestione

  • Padroneggiati i comandi di avvio, arresto, riavvio, ricarica e investigazione dei log

4. Firewall e sicurezza

  • Aperte le porte necessarie usando UFW e disabilitati i metodi HTTP non necessari

5. Ottimizzazione delle prestazioni e risoluzione dei problemi

  • Ottimizzati i processi worker, abilitato HTTP/2, configurata la cache e risolti i problemi comuni

Prossimi passi

Ora che comprendi i passaggi fondamentali di installazione e configurazione di Nginx su Ubuntu, considera di andare oltre:

  1. Impara la configurazione avanzata di Nginx
  • Studia le funzionalità di bilanciamento del carico e reverse proxy
  • Prova moduli aggiuntivi come il modulo Nginx RTMP
  1. Migliora la sicurezza
  • Considera l’implementazione di un Web Application Firewall (WAF)
  1. Introduci l’automazione
  • Usa Ansible o Docker per automatizzare la configurazione e il deployment
  1. Utilizza strumenti di monitoraggio e ottimizzazione
  • Implementa Prometheus o Grafana per visualizzare e monitorare le prestazioni

Considerazioni finali

Nginx è un server web veloce e flessibile, capace di supportare una vasta gamma di casi d’uso quando è configurato correttamente. Applica ciò che hai imparato qui a progetti reali e continua a esplorare funzionalità aggiuntive attraverso la documentazione ufficiale di Nginx e le risorse della community.

Spero che questa guida ti aiuti a gestire il tuo server web in modo più efficiente!

年収訴求