Qual è la differenza tra Load Balancer e Reverse Proxy?


Risposte:


114

La tua confusione è ragionevole - spesso sono la stessa cosa. Ma non sempre. Quando ti riferisci a un bilanciamento del carico ti riferisci a una cosa molto specifica: un server o un dispositivo che bilancia le richieste in entrata su due o più server Web per distribuire il carico. Un proxy inverso, tuttavia, in genere ha un numero qualsiasi di funzionalità:

  1. bilanciamento del carico: come discusso sopra

  2. memorizzazione nella cache: può memorizzare nella cache il contenuto dei server Web dietro di esso e quindi ridurre il carico sui server Web e restituire alcuni contenuti statici al richiedente senza dover recuperare i dati dai server Web

  3. sicurezza: può proteggere i server web impedendo l'accesso diretto da Internet; potrebbe farlo con mezzi semplici semplicemente offuscando i server web o potrebbe avere alcuni componenti più attivi che riesaminano effettivamente le richieste in entrata alla ricerca di codice dannoso

  4. Accelerazione SSL: quando viene utilizzato SSL; può fungere da punto di terminazione per quelle sessioni SSL in modo che il carico di lavoro relativo alla crittografia venga scaricato dal server Web

Penso che questo copra la maggior parte, ma probabilmente ci sono alcune altre caratteristiche che mi sono perse. Certamente non è raro vedere un dispositivo o un software commercializzato come un bilanciamento del carico / proxy inverso perché le funzionalità sono così comunemente raggruppate insieme.


2
+ pool di connessioni (consentire più richieste su una connessione front-end quando il back-end non la gestisce bene; o riutilizzare la connessione back-end per più connessioni
front

+ compressione La compressione delle risposte del server prima di restituirle al client (ad esempio, con gzip) riduce la quantità di larghezza di banda richiesta, che accelera il loro transito sulla rete
dimuthu

25

Inoltre, un proxy inverso è specifico per i server Web.

I servizi di bilanciamento del carico possono tuttavia gestire molti altri protocolli. Mentre il web (HTTP) è la grande idea al giorno d'oggi, anche cose come DNS, posta (SMTP, IMAP), ecc. Possono essere bilanciate anche in base al carico. Al giorno d'oggi, quando la maggior parte delle persone pensa a "Internet" o "Rete IP", pensa al web. Ci sono molte altre cose là fuori che potrebbero essere più oscure o più di una nicchia.


12

Mentre il risultato netto (distribuzione delle richieste tra server) è lo stesso tra vari servizi di bilanciamento del carico e proxy inversi, la differenza sta nel metodo utilizzato per distribuire le richieste.

Alcuni servizi di bilanciamento del carico bilanciano il traffico tramite DNS, risolvendo lo stesso nome a IP diversi in un round robin reindirizzando efficacemente le richieste. Ciò può spesso essere utile quando si richiedono richieste di bilanciamento del carico tra data center o altre posizioni fisiche. Questa è una scelta sbagliata se hai bisogno di un failover "istantaneo", poiché sei in balia del server DNS dei tuoi clienti per onorare il TTL che hai fornito. Cisco GSS (Global Site Selector) è un buon esempio di bilanciamento del carico basato su DNS.

Altri sistemi di bilanciamento del carico funzionano riscrivendo le intestazioni dei pacchetti destinate a un IP virtuale sull'IP reale di un server in una farm. Ciò fornisce il bilanciamento del carico in tempo reale e il failover quasi immediato. Un esempio di ciò sarebbe Cisco CSM (Content Switching Module)

Si noti che in entrambi gli esempi precedenti, c'è una conversazione TCP tra il client e il server.

Un proxy inverso funziona accettando la richiesta per conto del server Web, quindi facendo eco a tale richiesta al server Web e restituendola al client, eventualmente memorizzando nella cache i risultati se dovesse seguire una richiesta simile.

Si noti che il client non stabilisce mai una connessione al server Web; piuttosto la conversazione è strettamente tra il proxy e il client.


4

Un bilanciamento del carico può bilanciare il traffico dal livello 3 verso l'alto al livello 7, ma un proxy inverso è specifico HTTP.


3

Un proxy inverso accetta una richiesta da un client, la inoltra a un server in grado di soddisfarla e restituisce la risposta del server al client (il che significa che un server dietro il proxy inverso può comunicare con caratteristiche un po 'diverse di un protocollo o un protocollo diverso ).

Un bilanciamento del carico distribuisce le richieste client in arrivo tra un gruppo di server, restituendo in ogni caso la risposta dal server selezionato al client appropriato.


1
Quindi vuoi dire che un bilanciamento del carico è essenziale un "proxy inverso" con distribuzione?
Anthony Kong,

4
Questa è una duplicazione diretta di nginx.com/resources/glossary/reverse-proxy-vs-load-balancer o hanno rubato la tua risposta o dovresti fare riferimento alle tue fonti
icc97,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.