OffshoreVps
Tutorial14 ott 20269 min di letturaDi il team di OffshoreVps

Come ospitare un sito web su un VPS con Nginx e HTTPS

Installa Nginx su Ubuntu, crea un blocco server, aggiungi un certificato Let's Encrypt gratuito e rendilo più veloce. Comandi da copiare e incollare per un sito online in 20 minuti.

L’hosting condiviso è facile, ma un VPS ti dà velocità, accesso root e nessun vicino rumoroso. Questa guida porta un server Ubuntu 24.04 o 22.04 appena creato a un sito HTTPS attivo con Nginx, in circa venti minuti. Ogni comando si può copiare così com’è.

Finestra del terminale su un VPS che mostra i comandi usati per ospitare un sito web con Nginx e HTTPS, a partire da “sudo apt update”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

Cosa ti serve

  • Un VPS con almeno 1 vCPU e 1 GB di RAM (i nostri piani base bastano per la maggior parte dei piccoli siti).
  • Un nome di dominio che punta all’indirizzo IP del server (leggi la nostra guida su come puntare un dominio a un VPS).
  • Accesso SSH come utente sudo. Se il server è nuovo di zecca, fai prima l’hardening di base.

1. Installa Nginx

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

Apri l’indirizzo IP del tuo server in un browser. Dovresti vedere la pagina di benvenuto predefinita di Nginx. In caso contrario, controlla che il firewall consenta le porte 80 e 443:

sudo ufw allow "Nginx Full"
sudo ufw status

2. Crea la cartella del sito

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

Sostituisci example.com con il tuo dominio ovunque.

I passaggi di questa guida in ordine: 1. Cosa ti serve; 2. 1. Installa Nginx; 3. 2. Crea la cartella del sito; 4. 4. Aggiungi HTTPS gratuito con Let's Encrypt; 5. 5. Rendilo più veloce; 6. Problemi comuni
I passaggi di questa guida, in ordine.

3. Aggiungi un server block

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

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

Abilitalo, testa la configurazione e ricarica:

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

4. Aggiungi HTTPS gratuito con Let's Encrypt

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot modifica il tuo server block, reindirizza HTTP a HTTPS e installa un timer che rinnova automaticamente il certificato. Controlla il timer con systemctl list-timers | grep certbot.

5. Rendilo più veloce

Attiva la compressione e la cache del browser per i file statici. Aggiungi questo dentro il blocco server:

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Ricarica Nginx dopo. Per siti dinamici come WordPress, installa PHP-FPM e passagli le richieste .php, oppure metti davanti un plugin di cache.

Problemi comuni

  • 403 Forbidden: Nginx non riesce a leggere la cartella. Controlla il proprietario e che ogni directory superiore sia eseguibile (chmod o+x).
  • Certbot fallisce: il dominio non punta ancora al server, oppure la porta 80 è bloccata.
  • Compare ancora la pagina predefinita: rimuovi /etc/nginx/sites-enabled/default e ricarica.