Guida completa alla creazione di un proxy inverso Nginx sicuro
Creare un proxy inverso sicuro, affidabile e scalabile è fondamentale per aziende e professionisti IT che gestiscono siti web ad alto traffico o applicazioni complesse. Nginx, un server web open source e proxy inverso, è una soluzione potente per il routing, l'ottimizzazione e la protezione del traffico verso i servizi backend. In questa guida, illustreremo il processo di configurazione di un proxy inverso affidabile utilizzando Nginx su Ubuntu 24.04, affrontando passaggi critici come la crittografia TLS, la limitazione della velocità e l'integrazione con Cloudflare.
Se gestisci siti web aziendali, piattaforme di e-commerce o server multimediali, questa guida ti aiuterà a migliorare le prestazioni, garantire tempi di attività e proteggere la tua infrastruttura dalle vulnerabilità.
Che cos'è un proxy inverso Nginx?
Un reverse proxy Nginx funge da server intermediario tra client e servizi backend. Inoltra le richieste client al server backend appropriato, ottimizzando la distribuzione del carico, migliorando la sicurezza e abilitando funzionalità come la memorizzazione nella cache, la terminazione SSL e il filtraggio del traffico. Questa configurazione è particolarmente utile per l'hosting di server multimediali, applicazioni multi-sito e servizi protetti da firewall.
sbb-itb-59e1987
Perché hai bisogno di un proxy inverso
Un proxy inverso offre diversi vantaggi chiave:
- Sicurezza avanzata: Nasconde gli IP dei server backend e abilita la crittografia tramite TLS/SSL.
- Bilanciamento del carico: Distribuisce il traffico in modo uniforme su più server backend.
- Ottimizzazione: Riduce la latenza e migliora l'efficienza delle risorse.
- scalabilità: Semplifica la gestione di scenari ad alto traffico.
- Facilità di gestione: Semplifica la configurazione di più servizi backend dietro un dominio unificato.
In questo tutorial mostreremo come:
- Imposta Nginx come proxy inverso.
- Proteggi la tua configurazione con i certificati TLS Let's Encrypt.
- Configura ottimizzazioni avanzate come la limitazione della velocità e l'inoltro delle richieste.
- Integra Cloudflare per aggirare le restrizioni delle porte ISP.
Passaggio 1: installazione di Nginx e Certbot su Ubuntu 24.04
Aggiorna il tuo sistema
Prima di installare qualsiasi software, assicurati che il tuo sistema sia aggiornato:
sudo apt update && sudo apt upgrade Installa Nginx e Certbot
Utilizzare i seguenti comandi per installare Nginx e Certbot con il plugin Nginx:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Verifica installazione
Verificare che Nginx sia in esecuzione:
sudo systemctl status nginx Per testare l'accesso, determina l'indirizzo IP del tuo server:
ip a Visita l'indirizzo IP in un browser. Se l'operazione va a buon fine, vedrai la pagina di benvenuto predefinita di Nginx.
Passaggio 2: configurazione delle regole del firewall
Abilita firewall non complicato (UFW)
UFW consente di gestire facilmente le regole del firewall:
sudo ufw consenti 'Nginx Full' sudo ufw consenti OpenSSH sudo ufw abilita Controlla lo stato del tuo firewall per assicurarti che siano aperte le porte corrette:
sudo ufw status Passaggio 3: impostazione della configurazione del proxy Nginx
Crea file di configurazione personalizzati
Per maggiore flessibilità e sicurezza, utilizza file snippet per memorizzare configurazioni specifiche. Crea i seguenti file:
- Intestazioni di sicurezza:
Definisci le intestazioni di sicurezza per migliorare la protezione:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - Impostazioni proxy:
Ottimizza i flussi lunghi ed evita risposte lente:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; - Limiti di velocità:
Attenua le richieste eccessive:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
Includi frammenti nella configurazione principale
Modifica la configurazione principale di Nginx:
sudo nano /etc/nginx/nginx.conf Aggiungere quanto segue sotto http bloccare:
includi /etc/nginx/snippets/*.conf; Riavviare Nginx per applicare le modifiche:
sudo systemctl reload nginx Passaggio 4: configurazione del proxy inverso per un servizio backend
Creare un host virtuale
Crea un file di configurazione per il tuo servizio backend:
sudo nano /etc/nginx/sites-available/jellyfin Esempio di configurazione per un server multimediale Jellyfin:
server { ascolta 80; nome_server jelly.tuodominio.com; posizione / { proxy_pass http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } Abilita il sito creando un collegamento simbolico:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Prova e ricarica Nginx:
sudo nginx -t sudo systemctl reload nginx Passaggio 5: protezione del dominio con Let's Encrypt TLS
Per proteggere il tuo dominio, utilizza Let's Encrypt per emettere certificati gratuiti:
sudo certbot --nginx -d gelatina.tuodominio.com Certbot configura automaticamente SSL nel file del tuo sito Nginx. Per garantire che i certificati vengano rinnovati automaticamente, verifica che il timer di systemd sia attivo:
sudo systemctl list-timers | grep certbot Passaggio 6: integrazione di Cloudflare per ulteriore sicurezza e bypass delle porte ISP
Installa Cloudflared
Cloudflared crea un tunnel sicuro per instradare il traffico attraverso Cloudflare, aggirando le restrizioni dell'ISP sulle porte 80 e 443:
- Scarica il
.debpacchetto dalla pagina GitHub di Cloudflare. - Installa il pacchetto:
sudo dpkg -i cloudflared-version.deb
Configurare un tunnel
Autenticati con il tuo account Cloudflare:
accesso al tunnel Cloudflared Crea un nuovo tunnel:
tunnel cloudflared crea il mio tunnel Modifica il file di configurazione di Cloudflare:
sudo nano /etc/cloudflared/config.yml Esempio di configurazione:
tunnel: my-tunnel credentials-file: /home/user/.cloudflared/my-tunnel.json ingress: - hostname: jelly.yourdomain.com service: http://localhost:8096 - service: http_status:404 Avviare e abilitare il servizio tunnel:
sudo systemctl enable cloudflared sudo systemctl start cloudflared Punti chiave
- Proxy inverso Nginx: Essenziale per instradare il traffico in modo sicuro e ottimizzare i servizi backend.
- Crittografia TLS: Utilizza Let's Encrypt per proteggere i tuoi domini con certificati SSL gratuiti.
- Regole del firewall: Aprire le porte necessarie per HTTP (80), HTTPS (443) e SSH (22).
- Ottimizzazione della sicurezza: Implementare intestazioni e limitazioni di velocità per prevenire gli attacchi.
- Integrazione Cloudflare: Utilizza i tunnel Cloudflared per un hosting sicuro e compatibile con gli ISP.
- Automazione: I timer di Systemd garantiscono il rinnovo automatico dei certificati SSL.
Conclusione
Configurare un reverse proxy Nginx sicuro richiede attenzione ai dettagli e un'attenta configurazione, ma i risultati valgono ampiamente lo sforzo. Che tu ospiti server multimediali come Jellyfin o gestisca applicazioni aziendali, questa guida ti fornisce gli strumenti e le conoscenze per creare un ambiente altamente sicuro ed efficiente. Con funzionalità come TLS, tunnel Cloudflare e ottimizzazioni avanzate, la tua infrastruttura è pronta per le esigenze moderne.
Fonte: "Smetti di esporre le tue app! Crea un proxy inverso Nginx sicuro!" – KeepItTechie, YouTube, 19 agosto 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Utilizzo: incorporato per riferimento. Brevi citazioni utilizzate per commenti/recensioni.
Post del blog correlati
- Padroneggiare le configurazioni Nginx per prestazioni ottimali del server Web
- Padroneggiare la configurazione NGINX: come Serverion sblocca il successo dell'hosting web B2B
- NGINX Config Rewind: Serverion rilancia l'arte perduta della sintonizzazione della cache proxy
- La frontiera dimenticata della configurazione NGINX: l'immersione di Serverion nel microcaching FastCGI