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’è.
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.
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/defaulte ricarica.