Introducing G2.ai, the future of software buying.Try now

Reverse Proxy: Come Funziona, Esempi e Casi d'Uso

Ottobre 8, 2024
da Sagar Joshi

Nel networking, un proxy agisce come intermediario tra il client e il server, gestendo richieste e risposte per conto degli altri dispositivi.

I reverse proxy, tuttavia, si trovano davanti ai server web. Inoltrano le richieste dei client al server e restituiscono la risposta del server ai client. Dal punto di vista del client, sembra che la risposta provenga dal server web originale quando in realtà proviene dal server reverse proxy.

Il reverse proxy offre uno strato tra il client e il server, fornendo un controllo aggiuntivo per garantire che il traffico di rete fluisca senza intoppi. Molte organizzazioni lo utilizzano con software di bilanciamento del carico per distribuire il traffico elevato mantenendo le funzionalità corrette del sito web.

Lo strato di reverse proxy davanti al server web esamina la richiesta del client per attività dannose prima che il traffico raggiunga il tuo server web.

Come funziona un reverse proxy?

I reverse proxy hanno un solo scopo: proteggere i server web dal traffico in entrata. Ricevono richieste di connessione, le inviano a diversi server e poi stabiliscono una connessione con il server che elabora la richiesta.

Di seguito sono riportate le tre fasi in cui operano i reverse proxy.

  • Raccolta delle richieste: Il reverse proxy intercetta le richieste in arrivo dai client.
  • Handshake a tre vie del protocollo di controllo della trasmissione (TCP): Viene stabilita una connessione con il reverse proxy, che termina la connessione iniziale e ne avvia una nuova con il server.
  • Connessione al server di origine: La richiesta del client viene inoltrata al server utilizzando un indirizzo IP fittizio per mascherare il server di origine.

La maggior parte delle applicazioni web utilizza un reverse proxy per gestire le richieste da un browser web. Non consentono ai client di connettersi direttamente con un server di origine. Questo protegge i dati sensibili e riduce al minimo il rischio di accessi non autorizzati.

Il reverse proxy esamina anche le risposte dei server per qualsiasi cosa un hacker malintenzionato possa utilizzare per ottenere accesso non autorizzato a risorse interne.

Ecco come funziona il reverse proxy nella comunicazione Internet.

Ecco come funziona il reverse proxy nella comunicazione Internet:

  • Internet: Dove posso trovare "media.example.com"?
  • DNS: È a questo indirizzo di protocollo Internet (IP) X.XX.XXX.X. È l'indirizzo IP pubblico del tuo router.
  • Internet: Router, dove si trova media.example.com?
  • Router: Questa è una richiesta dalla porta 80/443. Inoltro tutte le richieste su quelle porte a 192.168.1.10.
  • Internet: Ciao 192.168.1.10 sulla porta 80/443, dove si trova media.example.com?
  • Reverse proxy: È proprio qui sulla porta 8080. Te lo inoltrerò sulla porta 80/443.

Vuoi saperne di più su Software di bilanciamento del carico? Esplora i prodotti Bilanciamento del carico.

Cosa fanno i server reverse proxy?

I server reverse proxy si occupano di molteplici aspetti quando si cerca di ottenere informazioni online. Questi server possono:

  • Nascondere le caratteristiche e l'esistenza di un server di origine.
  • Eseguire accelerazione della sicurezza del livello di trasporto (TLS) hardware per eseguire la crittografia TLS al posto dei siti web sicuri.
  • Bilanciare i carichi delle richieste in arrivo tra i server, supportando le loro aree di applicazione.
  • Ridurre il carico sul server di origine lavorando come server di accelerazione web che può memorizzare nella cache contenuti statici e dinamici.
  • Condurre test multivariati e test A/B senza inserire JavaScript direttamente nelle pagine.
  • Libera risorse del server durante il tempo di trasferimento servendo ai client pagine generate dinamicamente bit per bit, anche quando vengono prodotte in una sola volta.
  • Consegnare le richieste in arrivo a più server web all'interno di una rete locale valutandole tramite un singolo indirizzo IP pubblico.

Perché hai bisogno di un server reverse proxy?

I reverse proxy facilitano il bilanciamento del carico per interfacce di programmazione delle applicazioni (API) e applicazioni web. Puoi facilmente scaricare servizi dalle applicazioni, migliorando le prestazioni attraverso l'accelerazione SSL, la compressione e la memorizzazione nella cache. Offre un ulteriore strato di astrazione con quanto segue.

Aumento della sicurezza, scalabilità e flessibilità

Le informazioni del tuo server backend sono nascoste a tutti i client, impedendo agli hacker di accedervi o sfruttare vulnerabilità. I reverse proxy aiutano anche a prevenire che il server di origine subisca attacchi di negazione del servizio distribuiti (DDoS) rifiutando il traffico da determinati indirizzi IP o limitando le richieste di connessione dei client.

Poiché il server di origine non è direttamente esposto, puoi facilmente modificare la configurazione del backend. Questo è utile per ambienti bilanciati, dove puoi adattare le fluttuazioni del volume di traffico aumentando o diminuendo il numero di server.

Con un reverse proxy, non è mai necessario rivelare l'indirizzo IP del tuo server di origine. Tutte le richieste vanno al reverse proxy, come la rete di distribuzione dei contenuti (CDN) di Cloudflare, che avrà una sicurezza più robusta e risorse estese per proteggere dagli attacchi informatici.

Compressione a livello di proxy

I reverse proxy riducono la quantità di dati che devono essere condivisi con la rete. Molti server proxy utilizzano la compressione Gzip su linguaggio di markup per ipertesto (HTML), fogli di stile a cascata (CSS), JavaScript Object Notation (JSON), JavaScript, linguaggio di markup estensibile (XML) e vari altri tipi di contenuto.

Bilanciamento del carico

Gestire milioni di utenti giornalieri su un sito web con un singolo server di origine diventa complicato. Di solito, tali siti utilizzano un pool distribuito di server, gestendo tutte le richieste contemporaneamente. Il reverse proxy e il software di bilanciamento del carico offrono una soluzione in tali casi distribuendo le richieste in arrivo tra diversi server e minimizzando il sovraccarico. In caso di guasto del server, il carico viene gestito da altri server nel pool.

Per applicazioni globali, i reverse proxy possono instradare le richieste dei client al server più vicino a loro per ridurre la latenza e velocizzare i tempi di risposta. Questa distribuzione geografica è un vantaggio chiave per siti web su larga scala con traffico globale.

Memorizzazione nella cache

Un server reverse proxy memorizza nella cache i contenuti per migliorare le prestazioni. Ad esempio, se una persona in India visita un sito web con reverse proxy con server a Los Angeles, potrebbe connettersi a un reverse proxy locale in India. Il proxy comunicherebbe con il server a Los Angeles.

Il server reverse proxy locale in India memorizza nella cache i dati di risposta. La prossima volta che qualcuno dall'India tenta di visitare il sito web, il reverse proxy locale mostra loro la versione memorizzata nella cache del sito web, rendendo le sue prestazioni più veloci.

Crittografia

Applicare la crittografia del livello di socket sicuro (SSL) o la decrittazione può essere computazionalmente costoso da eseguire sul server di origine. In tali casi, le organizzazioni utilizzano un reverse proxy per decrittare tutte le richieste in arrivo e crittografare le risposte in uscita.

Libera risorse preziose sul server di origine, rendendolo più efficace nell'eseguire operazioni critiche.

Reverse proxy vs. forward proxy

Un reverse proxy si trova davanti al server, gestendo le richieste in arrivo dal client. D'altra parte, un forward proxy (comunemente chiamato proxy) si trova davanti alle macchine client. Quando queste macchine comunicano con Internet e inviano richieste, il server proxy le interpreta e comunica con il server web per conto dei client.

Per comprendere in dettaglio una tipica comunicazione con un forward proxy, prendiamo un esempio:

Considera tre computer domestici {A}, un server forward proxy {B} e un server di origine di un sito web {C}.

forward proxy flow

Fonte: Cloudflare

Senza un server proxy, un computer A si connetterebbe direttamente con il server C per inviare la richiesta e ottenere risposte dal server. Con un forward proxy, A invia richieste a B, che le inoltra a C. La risposta segue lo stesso percorso, mantenendo anonimo il client (A).

Al contrario, i reverse proxy intercettano le richieste dei client al margine della rete davanti al server di origine di un sito web.

La differenza tra un forward e un reverse proxy è sottile. Mentre un reverse proxy garantisce che nessun client comunichi direttamente con il server di origine, un forward proxy garantisce che nessun server di origine comunichi mai direttamente con il client specifico.

Di seguito sono riportate alcune differenze notevoli tra reverse proxy e forward proxy.

  • Utilizzo: I forward proxy aiutano a monitorare e controllare i contenuti web a cui accedono i dipendenti e a prevenire che il traffico dannoso raggiunga i server di origine. Utilizzano contenuti memorizzati nella cache per l'accelerazione web, migliorando il tempo di caricamento e l'esperienza degli utenti.
  • Direzione del traffico: Nel caso del reverse proxy, la direzione del flusso di traffico è in entrata (internet verso il server). Per il forward proxy, è dal client al server.
  • Memorizzazione nella cache: Il reverse proxy memorizza nella cache i contenuti statici per il bilanciamento del carico. I forward proxy memorizzano nella cache i contenuti frequentemente accessibili.
  • Gestione SSL/TLS: I reverse proxy terminano le connessioni SSL/TLS per i server, mentre i forward proxy avviano queste connessioni per conto dei client.
  • Scalabilità: I reverse proxy si scalano con il numero di server. I forward proxy si scalano con il numero di client.

Casi d'uso comuni dei reverse proxy

Di seguito sono riportati alcuni casi d'uso comuni dei reverse proxy in un'organizzazione.

  • Servire contenuti statici: Un sito web ha una miscela di contenuti dinamici e statici. Alcune organizzazioni configurano il loro server reverse proxy per servire contenuti statici, riducendo il tempo di caricamento e liberando più potenza per il rendering dei contenuti dinamici.
  • Prevenire le violazioni dei dati: I reverse proxy crittografano i dati trasmessi attraverso una rete, aiutando le aziende a proteggersi dalle violazioni dei dati.
  • Instradare le richieste dei client in base alla geolocalizzazione: Un reverse proxy può instradare le richieste dei client al server più vicino a loro in base alla loro posizione geografica.
  • Proteggere i gateway web: I reverse proxy nascondono l'identità del server di origine, mantenendolo al sicuro dagli attori delle minacce.

Oltre a questi, i reverse proxy vengono utilizzati nelle reti di distribuzione dei contenuti per memorizzare nella cache i contenuti ai margini della rete più vicini al client e nei servizi web mobili per ottimizzare immagini e script per dispositivi mobili.

Gestisci il flusso di traffico elevato in modo efficiente

Nel complesso, i reverse proxy sono strumenti versatili con applicazioni in molteplici casi d'uso. Per qualsiasi azienda che lotta con la gestione del traffico pesante, il reverse proxy offre una soluzione per far fluire il traffico senza intoppi. Migliora l'efficienza del server e aggiunge un ulteriore strato di sicurezza, garantendo che il traffico web e gli hacker siano tenuti fuori dalle tue reti.

Scegli il giusto reverse proxy e bilanciatore di carico per la tua azienda e mantieni il tuo sito web operativo ed efficiente.

Scopri di più su come un bilanciatore di carico distribuisce il traffico in entrata elevato su un'applicazione garantendo la corretta funzionalità.

Modificato da Monishka Agrawal

Sagar Joshi
SJ

Sagar Joshi

Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.