reverseproxy - Differenza tra server proxy e server proxy inverso




squid reverse proxy (12)

Cloudflare ha un grande articolo con immagini che lo spiegano in dettaglio.

Controlla qui: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/

Qual è la differenza tra server proxy e server reverse proxy?


Alcuni diagrammi potrebbero aiutare:

Forward proxy

Reverse proxy


Ho trovato questo diagramma molto utile. Mostra semplicemente l'architettura di una configurazione di proxy forward e reverse da client a server su Internet. Questa immagine ti aiuterà a capire meglio il post di qyb2zm302 e altri post.

Puoi anche guardare this video dal DevCentral di DevCentral di Peter Silva.

Fonte immagine: Quora . Tutti i crediti per la persona che ha creato questo diagramma.

Mi ha ricordato il classico proverbio:

Un'immagine vale 1000 parole.


La differenza è principalmente nella distribuzione. I proxy di inoltro e inversione del Web hanno tutti le stesse funzionalità sottostanti, accettano richieste di richieste HTTP in vari formati e forniscono una risposta, di solito accedendo al server di origine o di contatto.

I server con funzionalità complete di solito dispongono di controllo degli accessi, memorizzazione nella cache e alcune funzioni di associazione dei collegamenti.

Un proxy forward è un proxy a cui si accede configurando la macchina client. Il client ha bisogno del supporto del protocollo per le funzionalità proxy (reindirizzamento, autenticazione proxy, ecc.). Il proxy è trasparente per l'esperienza dell'utente, ma non per l'applicazione.

Un proxy inverso è un proxy che viene distribuito come server Web e si comporta come un server Web, con l'eccezione che invece di comporre localmente il contenuto da programmi e da disco, inoltra la richiesta a un server di origine. Dal punto di vista del cliente è un server web, quindi l'esperienza utente è completamente trasparente.

Infatti, una singola istanza proxy può essere eseguita contemporaneamente come proxy di inoltro e inverso per le diverse popolazioni di client.

Questa è la versione breve, posso chiarire se le persone vogliono commentare.


La risposta di qyb2zm302 descrive in modo dettagliato le applicazioni dei proxy, ma scivola sul concetto fondamentale tra i proxy in avanti e in retromarcia. Per il proxy inverso, X -> Y -> Z, X conosce Y e non Z, piuttosto che viceversa.

http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy spiega molto chiaramente la differenza tra i proxy in avanti e inverso.

Un proxy è semplicemente un intermediario per la comunicazione (richieste + risposte). Client <-> Proxy <-> Server

  • Proxy client: ( Client <-> Proxy ) <-> Server

    Il proxy agisce per conto del cliente. Il client conosce tutte e 3 le macchine coinvolte nella catena. Il server no.

  • Server proxy: Client <-> ( Proxy <-> Server )

    Il proxy agisce per conto del server. Il client conosce solo il proxy. Il server conosce l'intera catena.

Mi sembra che avanti e indietro siano semplicemente dei nomi confusionali, dipendenti dalla prospettiva, per il proxy client e server . Suggerisco di abbandonare il primo per quest'ultimo, per una comunicazione esplicita.

Naturalmente, per complicare ulteriormente la questione, non tutte le macchine sono esclusivamente client o server. Se c'è un'ambiguità nel contesto, è meglio specificare esplicitamente dove si trova il proxy e le comunicazioni che esegue il tunnelling.


Le risposte precedenti erano accurate, ma forse troppo concise. Proverò ad aggiungere alcuni esempi.

Prima di tutto, la parola "proxy" descrive qualcuno o qualcosa che agisce per conto di qualcun altro.

Nel regno dei computer, stiamo parlando di un server che agisce per conto di un altro computer.

Ai fini dell'accessibilità, limiterò la discussione ai proxy Web, tuttavia l'idea di un proxy non è limitata ai siti Web.

FORWARD proxy

La maggior parte delle discussioni sui proxy Web fa riferimento al tipo di proxy noto come "proxy di inoltro".

L'evento proxy, in questo caso, è che il "forward proxy" recupera i dati da un altro sito Web per conto del richiedente originale.

Una storia di 3 computer (parte I)

Per un esempio, elencherò tre computer connessi a Internet.

  • X = computer o computer "client" su Internet
  • Y = il sito web del proxy, proxy.example.org
  • Z = il sito web che vuoi visitare, www.example.net

Normalmente, ci si connetterebbe direttamente da X --> Z.

Tuttavia, in alcuni scenari, è meglio per Y --> Z per conto di X , che catene come segue: X --> Y --> Z

Ragioni per cui X vorrebbe utilizzare un server proxy in avanti:

Ecco un elenco (molto) parziale di usi di un server proxy forward.

  • 1) X non è in grado di accedere direttamente a Z perché

    • a) Qualcuno con autorizzazione amministrativa sulla connessione internet di X ha deciso di bloccare tutti gli accessi al sito Z

      • Esempi:

        • Il virus Storm Worm si sta diffondendo familypostcards2008.com persone a visitare familypostcards2008.com , quindi l'amministratore di sistema ha bloccato l'accesso al sito per impedire agli utenti di infettarsi inavvertitamente.

        • I dipendenti di una grande azienda hanno perso troppo tempo su facebook.com , quindi la direzione vuole che l'accesso venga bloccato durante l'orario lavorativo.

        • Una scuola elementare locale non consente l'accesso a Internet al sito Web di playboy.com .

        • Un governo non è in grado di controllare la pubblicazione di notizie, quindi controlla l'accesso alle notizie, invece, bloccando siti come wikipedia.org . Vedi TOR o FreeNet .

    • b) L'amministratore di Z ha bloccato X

      • Esempi:

        • L'amministratore di Z ha notato che i tentativi di hacking provengono da X, quindi l'amministratore ha deciso di bloccare l'indirizzo IP di X (e / o netrange).

        • Z è un sito web del forum. X sta inviando spam al forum. Z blocchi X.

REVERSE proxy

Una storia di 3 computer (parte II)

Per questo esempio, elencherò tre computer connessi a Internet.

  • X = computer o computer "client" su Internet
  • Y = il sito web del proxy inverso, proxy.example.com
  • Z = il sito web che vuoi visitare, www.example.net

Normalmente, ci si connetterebbe direttamente da X --> Z.

Tuttavia, in alcuni scenari, è meglio che l'amministratore di Z limiti o impedisca l'accesso diretto e costringa i visitatori a passare prima per Y. Quindi, come prima, abbiamo i dati che vengono recuperati da Y --> Z per conto di X , quali catene come segue: X --> Y --> Z

Ciò che è diverso questa volta rispetto a un "proxy in avanti" è che questa volta l'utente X non sa che sta accedendo a Z , perché l'utente X vede solo che sta comunicando con Y
Il server Z è invisibile ai client e solo il proxy inverso Y è visibile esternamente. Un proxy inverso non richiede configurazione (proxy) sul lato client.

Il cliente X pensa di comunicare solo con Y ( X --> Y ), ma la realtà è che Y inoltra tutte le comunicazioni ( X --> Y --> Z nuovo).

Motivi per cui Z vorrebbe impostare un server proxy inverso:

  • 1) Z vuole forzare tutto il traffico verso il proprio sito web a passare prima per Y.
    • a) Z ha un sito Web di grandi dimensioni che milioni di persone vogliono vedere, ma un singolo server Web non può gestire tutto il traffico. Quindi Z imposta molti server e mette un proxy inverso su Internet che invierà gli utenti al server più vicino a loro quando cercheranno di visitare Z. Questo è parte di come funziona il concetto di Content Distribution Network (CDN).
  • 2) L'amministratore di Z è preoccupato di ritorsioni per contenuti ospitati sul server e non vuole esporre il server principale direttamente al pubblico.
    • a) I proprietari di marchi di spam come "Canadian Pharmacy" sembrano avere migliaia di server, mentre in realtà la maggior parte dei siti web è ospitata su server molto meno numerosi. Inoltre, i reclami di abuso relativi allo spam interromperanno solo i server pubblici, non il server principale.

Negli scenari di cui sopra, Z ha la possibilità di scegliere Y

Link agli argomenti del post:

Content Delivery Network

software proxy di inoltro (lato server)

software proxy inverso per HTTP (lato server)

software proxy inverso per TCP (lato server)

Guarda anche:


Sebbene la mia comprensione da un punto di vista apache sia che Proxy significa che se il sito x proxy per il sito y, allora le richieste per x restituiscono y.

Il proxy inverso significa che la risposta di y viene regolata in modo che tutti i riferimenti a y diventino x.

In modo che l'utente non può dire che un proxy è coinvolto ...


Secondo la mia comprensione ..........

Per cominciare, come tutti sanno proxy significa "L'autorità per rappresentare qualcun altro". Ora ci sono due cose proxy Forward and Reverse.

AVANTI PROXY Supponiamo di voler accedere a "google" e "google" a loro volta avranno n numero di server per rispondere a quella particolare richiesta.

Ora, mentre stai richiedendo qualcosa da Google e non vuoi che Google veda il tuo indirizzo IP, utilizzerai un proxy in avanti, come spiegato di seguito.

A -----> B -----> C

Ora qui sei A che invia una richiesta tramite B, Quindi C penserà che la richiesta provenga da B, non da A. In questo modo puoi impedire ai tuoi clienti di non essere esposti al mondo esterno.

INVERSIONE PROSSIMA. Ora, in questo caso, per farti capire prendiamo lo stesso caso di forward proxy. Qui hai richiesto qualcosa su google che a sua volta invierà una richiesta al server dell'app o ad un altro server proxy per ottenere la risposta. Quindi queste cose accadranno come spiegato di seguito.

A -----> B -----> C

          C------>D

          C<------D

A <----- B <----- C Dal diagramma precedente puoi vedere che una richiesta è stata inviata a C da B non da A. Quindi da C ci sarà una richiesta inviata a D. Allo stesso modo la risposta andrà a C da D e poi a B e A.

Il diagramma sopra dice solo il contesto che conta sebbene entrambi i proxy agiscano allo stesso modo ma il proxy lato client nasconde le informazioni del client mentre il proxy lato server nasconderà le informazioni sul lato server.

Si prega di commentare se ritenete che la spiegazione sopra sia sbagliata.


Un proxy server proxy (e facoltativamente mette in cache) richieste di rete in uscita a varie risorse pubbliche non necessariamente correlate su Internet. Un proxy inverso acquisisce (e facoltativamente memorizza nella cache) le richieste in arrivo da Internet e le distribuisce a varie risorse private interne, in genere per scopi di disponibilità elevata.


Una coppia di definizione semplice sarebbe

Proxy inoltro: intervento per conto di un richiedente (o consumatore di servizi)

Reverse Proxy: agire per conto del servizio / produttore di contenuti.


Proxy (inoltro proxy): quando i computer sulla LAN si connettono a un server proxy che accede a Internet. I vantaggi includono, solo il server viene esposto a Internet. Le persone all'esterno non sono in grado di accedere direttamente ai computer. I proxy di inoltro possono migliorare l'accesso a Internet per gli utenti memorizzando nella cache i download. Possono anche essere utilizzati per limitare l'accesso a determinati siti. Inoltre, solo il server proxy avrebbe bisogno di un indirizzo pubblico, non dei client che si collegano ad esso.

Reverse Proxy: un reverse proxy è l'opposto di un forward proxy. Invece agisce come un proxy per conto dei server a cui è connesso. Invece di accedere direttamente a un server remoto, un utente passerebbe attraverso il proxy inverso e verrà indirizzato al server appropriato da lì. Solo il proxy inverso avrebbe bisogno di un certificato SSL, sarebbe necessario un solo indirizzo IP pubblico e può gestire il bilanciamento del carico delle richieste in entrata per migliorare l'esperienza complessiva dell'utente.

Fonte immagine: docs.microsoft.com


Proxy: sta effettuando la richiesta per conto del cliente . Pertanto, il server restituirà la risposta al proxy e il proxy inoltrerà la risposta al client. Infatti, il server non "imparerà" mai chi era il client (IP del client), conoscerà solo il proxy. Tuttavia, il client conosce sicuramente il server, dal momento che essenzialmente formatta la richiesta HTTP destinata al server, ma lo consegna al proxy.

Reverse Proxy: sta ricevendo la richiesta per conto del server . Invia la richiesta al server, riceve la risposta e restituisce la risposta al client. In questo caso, il client non "impara" mai chi era il server effettivo (IP del server) (con alcune eccezioni), conoscerà solo il proxy. Il server conoscerà o non conoscerà il client effettivo, a seconda delle configurazioni del proxy inverso.