FAQ

Installare e configurare Nginx su Debian 12 (Bookworm)

Artikel suchen

Installare e configurare Nginx su Debian 12 (Bookworm)

3 Views

Guida passo passo per installare Nginx su Debian 12, gestire il servizio con systemd, creare un virtual host e abilitare HTTPS con Let’s Encrypt. Per clienti Boxis e amministratori di sistema.

Installare e configurare Nginx su Debian 12 (Bookworm)

Ultimo aggiornamento: marzo 2026
Tempo di lettura: ~12 minuti
Destinatari: amministratori di sistema e utenti esperti con un server Debian 12.

Nginx è un server HTTP ad alte prestazioni e un reverse proxy. Su Debian 12 (Bookworm) si integra bene con systemd ed è adatto davanti a PHP, Node.js o API upstream. Questa guida copre installazione pulita, linee guida di sicurezza di base, un virtual host minimo e, facoltativamente, TLS con Let’s Encrypt.


Risultato atteso

  • Nginx installato dai repository Debian e servizio verificato.
  • Porte HTTP/HTTPS aperte (esempio con UFW).
  • Document root dedicato e blocco server dedicato.
  • Opzionale: certificato Let’s Encrypt e rinnovo automatico.

Prerequisiti

  • Server Debian 12 con accesso SSH.
  • Utente con privilegi sudo (evitare l’uso quotidiano di root).
  • Nome DNS (es. app.example.com) che punti all’IP pubblico se si desidera HTTPS e rinnovo automatico.
  • Familiarità di base con la shell.

Nota Boxis: su hosting gestito da Boxis le modifiche a livello di server possono essere limitate; aprite un ticket prima di intervenire sullo stack web in ambienti condivisi.


1. Aggiornare gli indici APT e installare Nginx

sudo apt update
sudo apt install -y nginx

Debian fornisce una build collaudata di Nginx; i repository di terze parti servono solo se servono moduli specifici.


2. Firewall: consentire HTTP e HTTPS (UFW)

Se UFW è attivo:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status

Con nftables o gruppi di sicurezza cloud, aprite TCP 80 e TCP 443 lì.


3. Gestire Nginx con systemd

Azione Comando
Abilitare all’avvio sudo systemctl enable nginx
Avviare sudo systemctl start nginx
Stato sudo systemctl status nginx
Ricaricare la config sudo systemctl reload nginx
Verificare la sintassi sudo nginx -t

Dopo ogni modifica ai file di configurazione eseguire nginx -t prima del reload.


4. Dove si trova la configurazione su Debian

Struttura tipica:

  • Config principale: /etc/nginx/nginx.conf
  • Siti: /etc/nginx/sites-available/ (collegamenti in sites-enabled/)
  • Extra: /etc/nginx/conf.d/*.conf

Preferite sites-available / sites-enabled per abilitare o disabilitare siti senza cancellare i file.


5. Creare un virtual host (blocco server)

Esempio: host app.example.com con file in /var/www/app.example.com/html.

5.1 Directory e pagina di prova

sudo mkdir -p /var/www/app.example.com/html
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>OK</title></head><body><h1>It works</h1></body></html>' | sudo tee /var/www/app.example.com/html/index.html
sudo chown -R www-data:www-data /var/www/app.example.com

5.2 File di configurazione

Creare /etc/nginx/sites-available/app.example.com.conf:

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

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

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

Abilitare il sito:

sudo ln -sf /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Verificare con browser o curl -I http://app.example.com.


6. HTTPS con Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

Ottenere il certificato (adattare email e dominio):

sudo certbot --nginx -d app.example.com -m voi@example.com --agree-tos --non-interactive

Verificare il rinnovo:

sudo certbot renew --dry-run

Il rinnovo è in genere gestito da un timer systemd o cron; controllare con systemctl list-timers | grep certbot.


7. Buone pratiche operative

  • Preferire reload a restart dopo semplici modifiche alla config.
  • Log per sito se il traffico è elevato (access_log / error_log).
  • server_tokens off; se consentito dalle policy.
  • PHP o applicazioni: fastcgi_pass verso PHP-FPM o proxy_pass verso upstream coerente.
  • Backup di /etc/nginx/ prima di modifiche importanti.

8. Risoluzione rapida dei problemi

Sintomo Cosa controllare
502 Bad Gateway Applicazione downstream non raggiungibile; proxy_pass / fastcgi_pass errato.
403 Forbidden Permessi; percorso root; SELinux/AppArmor.
Config non accettata sudo nginx -t e correggere le righe indicate.
Rinnovo certificato fallito DNS ancora puntato qui; porta 80 raggiungibile per HTTP-01.

9. Sintesi

Avete installato Nginx su Debian 12, aperto le porte web, creato un virtual host e, opzionalmente, abilitato HTTPS con Certbot. In produzione, affinate log, limiti di richiesta e monitoraggio degli upstream.


Argomenti correlati

  • Ricerca nella knowledge base Boxis: /{lang}/knowledgebase/search/
  • Hosting e DNS: categoria Hosting & domini quando disponibile.

Documento generico; comandi e percorsi possono variare in base all’immagine e alle personalizzazioni.

Was this article helpful?
Views: 3