it-swarm-eu.dev

Differenza tra server proxy e server proxy inverso

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

1643
Vicky

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

Prima di tutto, il "proxy" di Word 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 mia 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 X ha deciso di bloccare tutti gli accessi al sito Z.

      • Esempi:

        • Il virus Storm Worm si sta diffondendo inducendo le 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 sprecato troppo tempo con 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 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 blocca 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 per l'amministratore di Z limitare o disabilitare l'accesso diretto e forzare i visitatori a passare prima per Y. Quindi, come in precedenza, abbiamo dati recuperati da Y --> Z per conto di X, che catene come segue: X --> Y --> Z.

Ciò che è diverso questa volta rispetto a un "forward proxy" è 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 alcuna configurazione (proxy) sul lato client.

Il client X pensa di comunicare solo con Y (X --> Y), ma la realtà è che Y inoltra tutte le comunicazioni (X --> Y --> Z di 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 provano a 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 dello Spam come "Canadian Pharmacy" sembrano avere migliaia di server, mentre in realtà la maggior parte dei siti Web è ospitata su un numero molto minore di server. Inoltre, i reclami di abuso relativi allo spam interromperanno solo i server pubblici, non il server principale.

Negli scenari precedenti, 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:

2803
qyb2zm302

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.

499

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

 Forward Proxy vs Reverse Proxy

Puoi anche guardare questo video da F5 's 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.

335
Nishant

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 avanti e indietro.

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 cliente 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 forward e reverse siano semplicemente confusi, nomi dipendenti dalla prospettiva per client e server proxy. Suggerisco di abbandonare il primo per quest'ultimo, per una comunicazione esplicita.

Ovviamente, 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.

205
Protongun

Alcuni diagrammi potrebbero aiutare:

Delega di inoltro

Forward proxy

Reverse proxy

Reverse proxy

125

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 richiede il 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 dischi, inoltra la richiesta a un server di origine. Dal punto di vista del cliente, IS 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.

70
benc

Proxy: sta effettuando la richiesta per conto del client . Pertanto, il server restituirà la risposta al proxy e il proxy inoltrerà la risposta al client. Infatti, il server non "impara" 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.

 enter image description here

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 attuale (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.

 enter image description here

55
Dimos

Migliore spiegazione qui con diagrammi:

Mentre aforward proxyproxies per conto di clients (o requesting hosts) , areverse proxyproxy per conto dei server

In effetti, mentre aforward proxynasconde le identità dei client, areverse proxynasconde le identità dei server

39
Farhan

Un proxy proxy server (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.

38

Proxy (Forward 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.

 enter image description here Fonte immagine: docs.Microsoft.com

25
JSON C11

Un ordinarioforward proxyè un server intermedio che si trova tra il client e il server di origine. Per ottenere il contenuto dal server di origine, il client invia una richiesta al proxy che nomina il server di origine come destinazione e il proxy quindi richiede il contenuto dal server di origine e lo restituisce al client. Il client deve essere appositamente configurato per utilizzare il proxy forward per accedere ad altri siti.

Areverse proxy (o gateway), al contrario, appare al client proprio come un normale web server. Non è necessaria alcuna configurazione speciale sul client. Il client effettua ordinarie richieste di contenuto nello spazio nome del proxy inverso. Il proxy inverso decide quindi dove inviare tali richieste e restituisce il contenuto come se fosse esso stesso l'Origine.

Un tipico utilizzo di un proxy inverso è quello di fornire agli utenti di Internet l'accesso a un server dietro un firewall. I proxy inversi possono anche essere utilizzati per bilanciare il carico tra diversi server di back-end o per fornire il caching per un server back-end più lento. Inoltre, i proxy inversi possono essere utilizzati semplicemente per portare diversi server nello stesso spazio URL.

per maggiori informazioni visita: Apache Docs

23
ironman_ma

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

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

 enter image description here


 enter image description here

22
Nakamoto

Questa è una buona lettura per capire le differenze tra un PROXY in avanti e indietro http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy

Un proxy forward nasconde le identità dei client (utenti) mentre un proxy inverso nasconde le identità dei server.

19
Bonnie Varghese

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 forward, come spiegato di seguito.

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

Ora qui sei A inviare 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.

INVERSA PROXY. 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.

10
Sourabh Sharma

Inoltrare i proxy garantire l'anonimato del cliente (ad esempio, pensa a Tor).

I proxy inversi garantiscono l'anonimato del back-end server (cioè, pensiamo che i server siano dietro una DMZ).

10
8bitjunkie

Sebbene la mia comprensione da un punto di vista Apache è che Proxy significa che se sito x proxy per sito y, quindi richieste per x restituire 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 ...

10
Chris Kimpton

Ecco un esempio di proxy inverso (come bilanciamento del carico).

Un cliente naviga su website.com e il server che colpisce ha un proxy inverso in esecuzione su di esso. Il proxy inverso sembra essere pound . Pound accetta la richiesta e la invia a uno dei tre application server che si trovano dietro di essa. In questo esempio Pound è un bilanciatore del carico. vale a dire. sta bilanciando il carico tra tre server di applicazioni. I server delle applicazioni restituiscono il contenuto del sito Web al client.

9
ae.

se nessun proxy to see from client side and server side are the same: Client -> Server proxy from client side: Client -> proxy -> Server from Server side: Client -> Server reverse proxy from client side: Client -> Server from Server side: Client -> proxy -> Server

Quindi penso che se è impostato dall'utente Client, ha chiamato proxy, se impostato da Server manager è proxy inverso.

Poiché gli scopi e i motivi per configurarlo sono diversi, essi trattano i dati in modi diversi e utilizzano software diversi.

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server
4
tinyhare

Proxy inoltro serve Utenti : help Utenti accede a Server .

Reverse Proxy serve Server : protect Server from Utenti .

4
HoangYell

Guardando dal punto di vista dell'utente, quando si invia una richiesta a proxy o reverse proxy server:

  • proxy - richiede due argomenti :

    1) cosa ottenere e 2) quale server proxy utilizzare un intermediario

  • reverse proxy - richiede un argomento :

    1.) Cosa ottenere

    il proxy inverso recupera il contenuto da un altro server senza che l'utente lo conosca e restituisce il risultato come se provenisse da un server proxy inverso

1
pspi

La maggior parte delle risposte di cui sopra sono buone, ma a mio parere nessuno si avvicina molto ad affrontare abbastanza bene la qualità "inversa" che differenzia i due. Per fare ciò è necessario dare un modo di visualizzare la natura "inversa" di ciò che è essenzialmente la stessa cosa (un proxy) e deve essere dato in un modo ben astratto.

Un proxy (implicitamente "forward proxy") collega più client locali a qualsiasi server remoto:

c--
   |--p--s
c-- 

Un proxy inverso collega più server locali a qualsiasi client remoto (nota come il layout inverte):

s--
   |--p--c
s--

È una questione di prospettiva la comprensione vera e propria del concetto richiede l'astrazione di dettagli non essenziali (al particolare concetto) sebbene possano essere molto importanti quando si tratta della pragmatica dell'operazione proxy. Tali dettagli includono il fatto che in entrambi gli scenari la realtà è che più client si connettono a più server, che client e server potrebbero non essere locali o remoti, dove si trova il cloud Internet o che tipo di visibilità esiste tra client e server.

1
Alex Fotios