Je vais commencer par un exemple simple de la vie réelle pour expliquer le concept de proxy de la manière la plus simple possible.
Analogie
Dans notre enfance, lorsque nous voulions quelque chose, nous allions toujours voir nos parents pour le demander. Et c'était alors aux parents de décider s'il s'agissait d'une demande légitime à satisfaire ou non.
Supposons que vous vouliez une chauve-souris. Tu as toujours pensé que tes parents étaient ceux qui allaient satisfaire ta demande. C'était vrai, car tes parents sont allés dehors (au marché) pour acheter le produit. Ils ne laissaient jamais le monde extérieur entrer en contact avec toi parce que tu étais trop petit. C'est ainsi que nos parents nous protégeaient du monde extérieur jusqu'à ce que nous soyons assez mûrs pour nous débrouiller seuls.
Mettez simplement cet exemple en corrélation avec un serveur proxy.
En termes simples, un proxy est un acte que quelqu'un d'autre fait en votre nom. (Par exemple, l'assistance par procuration à l'université). Le proxy est une interface entre vous et le monde extérieur.
En fait, le proxy travaille pour la sécurité du client. Chaque fois que nous faisons une demande à partir de notre machine locale pour atteindre un serveur qui est présent en dehors du réseau (de l'intranet à l'internet), le proxy est l'interface par laquelle nous envoyons la demande et il va chercher les données sur l'internet en notre nom.
Cas d'utilisation du proxy
Mise en cache - C'est un cas d'utilisation très populaire du serveur proxy. Il permet d'économiser de la bande passante en mettant en cache le contenu et en le renvoyant au client au lieu d'aller sur Internet à chaque fois.
Anonymat - Le proxy parle au serveur de sorte que la destination finale (le serveur) ne sait pas d'où vient réellement la demande.
Sécurité - Il agit comme un pare-feu. Plusieurs machines clientes peuvent parler à un serveur proxy centralisé. Il aide les organisations et les fournisseurs d'accès à Internet à bloquer ou à filtrer les mauvaises demandes qui pourraient avoir un impact sur les machines clientes situées sur le réseau.
Cryptage et décryptage - Le proxy peut crypter et cacher (masquer) l'adresse IP et les données sensibles qui transitent par la requête. Il ne les envoie que de manière à ce que vous ne puissiez pas être découvert en retour.
Journalisation - La journalisation peut aider à mettre en cache les pages qui sont souvent visitées.
Microservices - C'est l'un des derniers cas d'utilisation très intéressants du proxy. Il existe plusieurs types de proxy tels que le proxy sidecar, le proxy HTTP, le proxy TCP, etc. Nous pouvons déployer un proxy à côté de notre application et il peut prendre en charge tous les aspects de la mise en réseau.
Par exemple, nous envoyons une requête HTTP depuis notre microservice et notre proxy sidecar peut la mettre à niveau vers un protocole plus récent comme HTTP2 ou HTTP3.
Comme son nom l'indique, il s'agit simplement de l'inverse d'un proxy et c'est pourquoi il est très déroutant. Le concept principal et la différence est qu'au lieu de le faire du côté du client (comme c'était le cas avec le proxy), il le fait du côté du serveur.
Il fait exactement le contraire de ce que fait un serveur proxy. Au lieu de protéger le client, il protège le serveur. Le serveur proxy inverse est pratique lorsqu'il y a une demande provenant d'Internet qui veut accéder à l'un de nos serveurs au sein du réseau. Ainsi, au lieu d'exposer nos serveurs, chaque demande passe par le serveur proxy inverse qui décide où envoyer cette demande.
Presque tous les avantages que nous avons du serveur proxy, y compris la mise en cache, la sécurité, etc, sont également présents dans le proxy inverse. Nous avons ici quelques avantages supplémentaires.
Équilibrage de la charge - Le proxy inverse permet d'équilibrer la charge entre les serveurs. De plus, le reverse proxy nous aide à compresser (zipper) la taille de la requête, ce qui contribue à l'augmentation des performances globales.
Ingress - Dans l'architecture kubernetes et microservice, en fonction de la demande, il achemine la demande vers un service particulier. (Par exemple, si une demande concerne une API d'image, il l'achemine vers le service correspondant. Ici, il fonctionne en quelque sorte comme un routeur).
Déploiement Canary - Supposons que Youtube veuille expérimenter pour 10% des demandes une vignette générée de manière aléatoire. Cela peut être fait par reverse proxy.
Une question assez fréquemment posée est de savoir quelle est la différence entre un serveur proxy inverse et un équilibreur de charge ?
Un serveur proxy inverse peut être un équilibreur de charge, mais l'équilibreur de charge a pour but très spécifique d'équilibrer la charge uniquement. En dehors de cela, un serveur proxy inverse peut toujours fonctionner avec un seul serveur en place. Il n'est pas nécessaire d'avoir plusieurs serveurs car le reverse proxy s'occupera toujours de la mise en cache, de la sécurité et d'autres choses pour ce serveur.
Peut-on utiliser le proxy et le reverse proxy en même temps ?
Oui, il y a un cas d'utilisation appelé "Service Mesh" où un proxy peut également agir comme un reverse proxy en même temps. Service Mesh ou un proxy de voiture latérale est utilisé dans l'architecture mircoservice pour gérer les timeouts, les ruptures de circuits, etc.
Copyright © biuid.org 2022 -