Quelle est la différence entre un serveur proxy et un serveur proxy inverse?
Les réponses précédentes étaient exactes, mais peut-être trop laconiques. Je vais essayer d'ajouter quelques exemples.
Tout d'abord, le mot "proxy" décrit quelqu'un ou quelque chose agissant au nom de quelqu'un d'autre.
Dans le domaine informatique, nous parlons d'un serveur agissant pour le compte d'un autre ordinateur.
Pour des raisons d'accessibilité, je limiterai ma discussion aux mandataires Web. Toutefois, l'idée d'un proxy ne se limite pas aux sites Web.
La plupart des discussions sur les proxys Web font référence au type de proxy appelé "proxy direct".
L'événement proxy, dans ce cas, est que le "proxy direct" récupère les données d'un autre site Web pour le compte du demandeur d'origine.
Par exemple, je vais énumérer trois ordinateurs connectés à Internet.
Normalement, on se connecterait directement à partir de X --> Z.
Cependant, dans certains scénarios, il est préférable que Y --> Z
de la part de X
, qui est chaîné comme suit: X --> Y --> Z
.
Voici une liste (très) partielle des utilisations d’un serveur proxy direct.
1) X ne peut pas accéder directement à Z parce que
a) Une personne disposant d'une autorité administrative sur la connexion Internet de X
a décidé de bloquer tout accès au site Z
.
Exemples:
Le virus Storm Worm se propage en incitant les gens à visiter familypostcards2008.com
, l'administrateur système a donc bloqué l'accès au site pour empêcher les utilisateurs de s'infecter par inadvertance.
Les employés d’une grande entreprise perdent trop de temps sur facebook.com
. La direction souhaite donc que l’accès soit bloqué pendant les heures ouvrables.
Une école élémentaire locale interdit l'accès Internet au site Web playboy.com
.
Un gouvernement étant incapable de contrôler la publication des nouvelles, il contrôle donc l'accès aux nouvelles en bloquant des sites tels que wikipedia.org
. Voir TOR ou FreeNet .
b) L'administrateur de Z
a bloqué X
.
Exemples:
L'administrateur de Z a remarqué des tentatives de piratage provenant de X et a donc décidé de bloquer l'adresse IP de X (et/ou la gamme réseau).
Z est un site de forum. X
est en train de spammer le forum. Z bloque X.
Pour cet exemple, je vais énumérer trois ordinateurs connectés à Internet.
Normalement, on se connecterait directement à partir de X --> Z.
Toutefois, dans certains scénarios, il est préférable que l'administrateur de Z
limite ou interdise l'accès direct et oblige les visiteurs à passer par Y en premier. Ainsi, comme précédemment, les données sont récupérées par Y --> Z
pour le compte de X
, qui est chaîné comme suit: X --> Y --> Z
.
Ce qui est différent cette fois-ci par rapport à un "proxy direct", c’est que cette fois-ci, l’utilisateur X
ne sait pas qu’il accède à Z
, car l’utilisateur X
ne voit qu’il communique avec lui. Y
.
Le serveur Z
est invisible pour les clients et seul le proxy inverse Y
est visible de l'extérieur. Un proxy inverse ne nécessite aucune configuration (proxy) du côté client.
Le client X
pense qu'il ne communique qu'avec Y
(X --> Y
), mais la réalité est que Y
transfère toutes les communications (X --> Y --> Z
encore).
Dans les scénarios ci-dessus, Z
peut choisir Y
.
Une paire de définition simple serait
Forward Proxy: agissant pour le compte d'un demandeur (ou d'un consommateur de service)
Proxy inverse: Agissant pour le compte du producteur de service/contenu.
J'ai trouvé ce diagramme très utile. Il montre simplement l'architecture d'une configuration de proxy forward
vs reverse
d'un client à un serveur via Internet. Cette image vous aidera à mieux comprendre la fonction post de qyb2zm302 et d’autres publications.
Vous pouvez aussi regarder this la vidéo de F5
'DevCentral
de Peter Silva.
Source de l'image: Quora . Tous les crédits à la personne qui a créé ce diagramme.
Cela m'a rappelé le proverbe classique:
Une image vaut 1000 mots.
la réponse de qyb2zm302 détaille joliment les applications des proxies mais glisse sur le concept fondamental des proxies inverses et inverses. Pour le proxy inverse, X -> Y -> Z, X connaît Y et non Z, et non l'inverse.
http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy explique très clairement la différence entre les proxies direct et inverse.
Un proxy est simplement un intermédiaire pour la communication (demandes + réponses). Client <-> Proxy <-> Serveur
Proxy client: ( Client <-> Proxy ) <-> Serveur
Le mandataire agit pour le compte du client. Le client connaît les 3 machines impliquées dans la chaîne. Le serveur ne.
Proxy serveur: Client <-> ( Proxy <-> serveur )
Le proxy agit pour le compte du serveur. Le client ne connaît que le proxy. Le serveur connaît toute la chaîne.
Il me semble que forward et reverse sont simplement des noms confus, dépendants de la perspective pour client et serveur proxy. Je suggère d'abandonner le premier pour le second, pour une communication explicite.
Bien entendu, pour compliquer encore les choses, chaque machine n’est pas exclusivement un client ou un serveur. S'il y a une ambiguïté dans le contexte, il est préférable de spécifier explicitement l'emplacement du proxy et les communications qu'il tunnelise.
Certains diagrammes pourraient aider:
proxy direct
proxy inverse
La différence réside principalement dans le déploiement. Les proxys Web renversés et inversés ont tous les mêmes fonctionnalités sous-jacentes, ils acceptent les demandes de demandes HTTP dans différents formats et fournissent une réponse, généralement en accédant au serveur Origin ou au serveur de contacts.
Les serveurs complets disposent généralement du contrôle d'accès, de la mise en cache et de certaines fonctionnalités de mappage de liens.
Un proxy direct est un proxy auquel on accède en configurant la machine cliente. Le client a besoin de la prise en charge du protocole pour les fonctionnalités proxy (redirection, autorisation proxy, etc.). Le proxy est transparent pour l'expérience utilisateur, mais pas pour l'application.
Un proxy inverse est un proxy déployé en tant que serveur Web et se comportant comme un serveur Web, à la différence qu'au lieu de composer localement le contenu à partir de programmes et de disques, il transmet la demande à un serveur Origin. Du point de vue du client, IS est un serveur Web, de sorte que l'expérience utilisateur est totalement transparente.
En fait, une seule instance de proxy peut être exécutée en même temps comme proxy direct et inverse pour différentes populations de clients.
C'est la version courte, je peux clarifier si les gens veulent commenter.
Proxy: Il s'agit de faire la demande au nom du client . Ainsi, le serveur renverra la réponse au proxy et celui-ci transmettra la réponse au client. En fait, le serveur ne saura jamais qui était le client (IP du client), il ne connaîtra que le proxy. Cependant, le client connaît bien le serveur, car il formate essentiellement la requête HTTP destinée au serveur, mais il la transfère simplement au proxy.
Reverse Proxy: il reçoit la demande de la part du serveur . Il transmet la demande au serveur, reçoit la réponse, puis renvoie la réponse au client. Dans ce cas, le client n'apprendra jamais qui était le serveur actuel (IP du serveur) (à quelques exceptions près), il ne connaît que le proxy. Le serveur connaîtra ou ne connaîtra pas le client réel, en fonction des configurations du proxy inverse.
Meilleure explication ici avec des diagrammes:
Alors qu'un transfère le mandataire au nom du client ( ou hôtes demandeurs ) , un proxy inverse procurations pour le compte de serveurs.
En effet, alors qu’un proxy masque l’identité des clients, un proxy inverse masque les identités des serveurs.
Un serveur proxy effectue le proxy (et met éventuellement en cache) les requêtes réseau sortantes vers diverses ressources publiques non nécessairement liées sur Internet. Un proxy inverse capture (et met éventuellement en cache) les demandes entrantes provenant d'Internet et les distribue à diverses ressources privées internes, généralement à des fins de haute disponibilité.
Cloudflare a un excellent article avec des images expliquant cela en détail.
Vérifiez ici: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/
Proxy (proxy direct): Lorsque les ordinateurs de votre réseau local se connectent à un serveur proxy qui accède à Internet. Parmi les avantages, seul le serveur est exposé à Internet. Les personnes extérieures ne peuvent pas accéder directement aux ordinateurs. Les mandataires avancés peuvent améliorer l'accès Internet des utilisateurs en mettant en cache les téléchargements. Ils peuvent également être utilisés pour restreindre l'accès à certains sites. De plus, seul le serveur proxy aurait besoin d'une adresse publique, pas les clients qui s'y connectent.
Proxy inverse: Un proxy inverse est l'opposé d'un proxy direct. Au lieu de cela, il agit en tant que proxy pour le compte des serveurs connectés. Au lieu d'accéder directement à un serveur distant, un utilisateur passe par le proxy inverse et est ensuite dirigé vers le serveur approprié. Seul le proxy inverse aurait besoin d'un certificat SSL, une seule adresse IP publique serait nécessaire et il peut gérer l'équilibrage de la charge des demandes entrantes afin d'améliorer l'expérience utilisateur globale.
Source de l'image: docs.Microsoft.com
Un proxy ordinaire est un serveur intermédiaire situé entre le client et le serveur Origin. Afin d'obtenir le contenu du serveur d'origine, le client envoie une demande au proxy en désignant le serveur d'origine comme cible. Le proxy demande ensuite le contenu au serveur d'origine et le renvoie au client. Le client doit être spécialement configuré pour utiliser le proxy direct pour accéder à d'autres sites.
Un proxy inverse (ou passerelle) , en revanche, apparaît pour le client comme un site Web ordinaire. serveur. Aucune configuration spéciale sur le client n'est nécessaire. Le client effectue des demandes ordinaires de contenu dans l'espace de noms du proxy inverse. Le proxy inverse décide ensuite où envoyer ces demandes et renvoie le contenu comme s'il était lui-même l'origine.
L’utilisation typique d’un proxy inverse consiste à fournir aux utilisateurs d’Internet l’accès à un serveur protégé par un pare-feu. plusieurs serveurs principaux ou pour mettre en cache un serveur principal plus lent. De plus, les proxys inversés peuvent être utilisés simplement pour amener plusieurs serveurs dans le même espace URL.
pour plus d'informations, visitez: Apache Docs
C’est une excellente lecture pour comprendre les différences entre un PROXY inversé et un inversé http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy
Un proxy direct cache les identités des clients (utilisateurs), tandis qu'un proxy inverse masque les identités de vos serveurs.
Bien que ma compréhension du point de vue Apache soit que Proxy signifie que si le site x utilise le proxy pour le site y, les demandes de x renvoient y.
Le proxy inverse signifie que la réponse de y est ajustée de sorte que toutes les références à y deviennent x.
Pour que l'utilisateur ne puisse pas dire qu'un proxy est impliqué ...
Selon ma compréhension ..........
Comme tout le monde le sait, proxy signifie d'abord "le pouvoir de représenter quelqu'un d'autre". Maintenant, il y a deux choses proxy direct et inverse.
FORX PROXY Supposons que vous souhaitiez accéder à "google" et que "google" dispose à son tour d'un nombre n de serveurs pour répondre à cette demande particulière.
Maintenant, dans ce cas, lorsque vous demandez quelque chose à Google et que vous ne voulez pas que Google voie votre adresse IP, vous utiliserez un proxy direct, comme expliqué ci-dessous.
A -----> B -----> C
Maintenant, vous êtes ici A qui envoie une demande via B, C pensera donc que la demande provient de B et non de A. De cette manière, vous pouvez empêcher l’IP de vos clients de ne pas être exposé au monde extérieur.
PROCURATION INVERSE. Maintenant, dans ce cas, pour vous faire comprendre, nous allons prendre le même cas de proxy direct. Ici, vous avez demandé quelque chose à Google qui va à son tour envoyer la demande au serveur d'applications ou à un autre serveur proxy pour obtenir la réponse. Donc, ces choses vont se passer comme expliqué ci-dessous.
A -----> B -----> C
C------>D
C<------D
A <----- B <----- C Dans le diagramme ci-dessus, vous pouvez voir qu'une demande a été envoyée à C depuis B et non de A. Ensuite, depuis C, il y aura une demande envoyée à D. la réponse passera de D à C puis de B et A.
Le diagramme ci-dessus indique que seul le contexte est important, même si les mandataires agissent de la même manière, mais le proxy côté client masque les informations du client, tandis que le proxy côté serveur masque les informations du côté serveur.
Veuillez commenter si vous pensez que l'explication ci-dessus est fausse.
Proxy directs accorde l'anonymat au client (c'est-à-dire pensez à Tor).
Proxy inverse accorde l'anonymat aux serveurs d'arrière-plan (c'est-à-dire, pensez aux serveurs derrière une zone démilitarisée).
Voici un exemple de proxy inverse (en tant qu’équilibreur de charge).
Un client surfe sur website.com et un serveur inverse est exécuté sur le serveur sur lequel il est connecté. Le proxy inverse se trouve être livre . Pound prend la demande et l'envoie à l'un des trois serveurs d'applications assis derrière celle-ci. Dans cet exemple, Pound est un équilibreur de charge. c'est à dire. il équilibre la charge entre trois serveurs d'applications. Les serveurs d'applications renvoient le contenu du site Web au client.
proxy direct sert tilisateurs: help tilisateurs accéder au serveur.
proxy inverse sert serveur: protège serveur de tilisateurs.
si aucun proxyto see from client side and server side are the same: Client -> Server
proxyfrom client side: Client -> proxy -> Server from Server side: Client -> Server
proxy inversefrom client side: Client -> Server from Server side: Client -> proxy -> Server
Je pense donc que s’il a été configuré par l’utilisateur client - il a appelé proxy - s’il est configuré par le gestionnaire de serveur, il s’agit d’un proxy inverse.
Comme les objectifs et les raisons de la configuration sont différents, ils traitent les données de différentes manières et utilisent des logiciels différents.
User side | Server side
client <-> proxy <--> reverse_proxy <-> real server
En regardant du point de vue de l'utilisateur: lors de l'envoi d'une demande à un proxy ou proxy inverse serveur:
proxy - nécessite deux arguments:
1) ce qu’il faut obtenir et 2) quel serveur proxy utiliser un intermédiaire
proxy inverse - nécessite n argument:
1) quoi acheter
le proxy inverse récupère le contenu d'un autre serveur à l'insu de l'utilisateur et renvoie le résultat comme s'il provenait d'un serveur proxy inverse
La plupart des réponses ci-dessus sont bonnes, mais, à mon avis, aucune ne résiste assez bien à la qualité "inversée" qui différencie les deux. Pour ce faire, il faut donner un moyen de visualiser la nature "inversée" de ce qui est essentiellement la même chose (un proxy) et ce, de manière bien abstraite.
Un proxy (implicitement "proxy de transfert") connecte plusieurs clients locaux à un serveur distant:
c--
|--p--s
c--
Un proxy inverse connecte plusieurs serveurs locaux à un client distant donné (remarquez l'inversion de la présentation):
s--
|--p--c
s--
C’est une question de perspective. Pour bien comprendre le concept, il faut résumer des détails non essentiels (au concept en question), bien qu’ils puissent être très importants pour la pragmatique du fonctionnement par procuration. Ces détails incluent le fait que dans les deux scénarios, la réalité est que plusieurs clients se connectent à plusieurs serveurs, que les clients et les serveurs peuvent ne pas être réellement locaux ou distants, l'emplacement du nuage Internet ou le type de visibilité existant entre le client et le serveur.
L'utilisation typique d'un proxy direct est de fournir Internet accès aux clients internes qui sont par ailleurs limités par un pare-fe. Le proxy de transfert peut également utiliser la mise en cache (fournie par mod_cache
) pour réduire l'utilisation du réseau.