Non sono chiaro sulla differenza tra Load Balancer e Reverse Proxy. Entrambi sembrano avere lo stesso comportamento: distribuire le richieste in arrivo ai server back-end.
Non sono chiaro sulla differenza tra Load Balancer e Reverse Proxy. Entrambi sembrano avere lo stesso comportamento: distribuire le richieste in arrivo ai server back-end.
Risposte:
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à:
bilanciamento del carico: come discusso sopra
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
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
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.
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.
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.
Un bilanciamento del carico può bilanciare il traffico dal livello 3 verso l'alto al livello 7, ma un proxy inverso è specifico HTTP.
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.