Vai al contenuto
ToolMug

Generatore configurazione Nginx

Inserisci il dominio, scegli il tipo di sito e seleziona le funzioni necessarie per ottenere una configurazione server nginx pronta all'uso. Copre proxy inversi (app Node.js, Python e Java), siti statici, single-page app (React, Vue) e PHP, con redirect HTTP-HTTPS e www, WebSocket, gzip e cache dei file statici.

Funziona nel tuo browser: nulla di ciò che inserisci viene caricato

HTTPS
Extra

0 mantiene il valore predefinito di nginx, 1 MB.

Prima ottieni il certificato, ad esempio: certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com. Poi esegui nginx -t e ricarica nginx.

Come si usa

  1. Inserisci il dominio e scegli il tipo di sito: un indirizzo upstream per un proxy inverso oppure la root web per gli altri.
  2. Seleziona HTTPS, HTTP/2, HSTS, redirect www, gzip, cache e header di sicurezza secondo necessità.
  3. Copia o scarica la configurazione in /etc/nginx/conf.d/, esegui nginx -t e ricarica nginx.

Opzioni spiegate

Proxy inverso
Inoltra all'indirizzo upstream e passa Host, X-Real-IP, X-Forwarded-For e X-Forwarded-Proto, così il backend vede IP e schema reali del visitatore.
Single-page app
I percorsi sconosciuti ricadono su index.html, quindi i router in modalità history (React Router, Vue Router) non restituiscono 404 al ricaricamento.
HTTPS
I percorsi dei certificati seguono i valori predefiniti di certbot (Let's Encrypt) e le richieste HTTP ricevono un redirect 301 a HTTPS. HTTP/2 usa la forma listen 443 ssl http2, compatibile con ogni versione di nginx.
HSTS
Dice ai browser di usare solo HTTPS per il dominio e tutti i sottodomini per un anno. Assicurati prima che ogni sottodominio supporti HTTPS, altrimenti diventeranno irraggiungibili.

Esempio: app a pagina singola con HTTPS e www

Con il dominio example.com, App a pagina singola, HTTPS, HTTP/2 e Rispondi anche a www. e reindirizzalo selezionati (e Compressione Gzip, Intestazioni di sicurezza e Cache lunga per i file statici disattivate per mantenere breve l’esempio), il generatore scrive tre blocchi server:

  1. La porta 80 risponde a entrambi i nomi, mantiene raggiungibile /.well-known/acme-challenge/ per il rinnovo del certificato e manda tutto il resto a https://example.com$request_uri con un 301.
  2. La porta 443 per www.example.com usa lo stesso certificato e restituisce un 301 verso il dominio senza www.
  3. La porta 443 per example.com serve il sito:
    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

Entrambi i blocchi HTTPS puntano a /etc/letsencrypt/live/example.com/fullchain.pem e privkey.pem, consentono TLS 1.2 e 1.3 e usano una cache di sessione condivisa da 10 MB con un timeout di sessione di un giorno. La riga try_files è ciò che fa sì che il ricaricamento di una route lato client come /settings restituisca l’app anziché un 404.

Domande frequenti

Perché nginx -t avvisa che il parametro http2 è obsoleto?

Da nginx 1.25.1 è preferita la direttiva separata http2 on;, ma 1.24 — distribuito con Ubuntu 24.04 e altri sistemi — non la comprende. La forma listen ... http2 funziona ovunque; le versioni più recenti mostrano solo un avviso.

Il certificato deve includere www?

Sì, quando è attivo il redirect www. Richiedi entrambi i nomi, per esempio certbot -d example.com -d www.example.com.

Gli upload falliscono con 413 Request Entity Too Large?

nginx consente per impostazione predefinita un corpo della richiesta di 1 MB. Imposta Dimensione massima upload sul valore necessario, per esempio 100.

Le connessioni WebSocket falliscono attraverso il proxy?

Il proxy deve inoltrare gli header Upgrade e Connection. Attivare il supporto WebSocket li aggiunge e porta il timeout di lettura a un'ora.

Privacy

Questo strumento funziona interamente nel tuo browser. File e testi vengono elaborati sul tuo dispositivo e non vengono mai caricati sui nostri server.

Strumenti correlati