Une introduction aux procurations

De Get Docs
Aller à :navigation, rechercher

Introduction

Un proxy, également appelé serveur proxy, est un logiciel serveur qui sert d'intermédiaire entre un client et un serveur sur Internet. Sans proxy, un client enverrait une demande de ressource directement à un serveur, puis le serveur renverrait la ressource directement au client. Bien que cette approche soit simple à comprendre et à mettre en œuvre, l'ajout de proxys offre des avantages sous la forme d'une augmentation des performances, de la confidentialité, de la sécurité, etc. En tant que couche intermédiaire supplémentaire, un proxy agit comme un gardien d'Internet entre les clients et les serveurs.

De manière générale, le package combiné de matériel serveur avec logiciel proxy installé est également souvent appelé serveur proxy. Cependant, cet article se concentrera sur les proxies traditionnellement définis comme des logiciels, et dans le contexte des serveurs Web. Vous obtiendrez une ventilation des deux principaux types, un proxy direct et un proxy inverse. Chaque type a un cas d'utilisation différent, souvent confondu en raison de la convention de dénomination similaire.

Cet article vous permettra de comprendre ce que sont les proxys et leurs sous-types, et comment ils sont utiles dans les configurations courantes. En lisant cet article, vous serez en mesure d'identifier les circonstances dans lesquelles un proxy est bénéfique et de choisir la bonne solution entre proxy direct et proxy inverse dans une situation donnée.

Comprendre les proxys directs

Un proxy direct, également appelé proxy ouvert, agit en tant que représentant d'un client qui tente d'envoyer une requête via Internet à un serveur d'origine. Dans ce scénario, toutes les tentatives d'envoi de requêtes par le client seront plutôt envoyées au proxy de transfert. Le mandataire direct, à la place du client, examinera la demande. Tout d'abord, il déterminera si ce client est autorisé à envoyer des requêtes via ce proxy de transfert spécifique. Il rejettera alors la demande ou la transmettra au serveur d'origine. Le client n'a pas d'accès direct à Internet ; il ne peut atteindre que ce à quoi le proxy direct lui permet d'accéder.

Un cas d'utilisation courant des proxys directs est d'augmenter la confidentialité ou l'anonymat sur Internet. Un proxy direct accède à Internet à la place d'un client et, dans ce processus, il peut utiliser une adresse IP différente de l'adresse IP d'origine du client.

Selon la façon dont il a été configuré, un proxy de transfert peut accorder un certain nombre de fonctionnalités, vous permettant de :

  • Évitez le suivi des publicités.
  • Contourner la surveillance.
  • Identifiez les restrictions en fonction de votre géolocalisation.

Les proxys directs sont également utilisés dans les systèmes de sécurité centralisée et d'accès basé sur les autorisations, comme sur un lieu de travail. Lorsque tout le trafic Internet passe par une couche proxy de transfert commune, un administrateur ne peut autoriser que des clients spécifiques à accéder à Internet filtrés via un pare-feu commun. Au lieu de maintenir des pare-feu pour la couche client qui peut impliquer de nombreuses machines avec des environnements et des utilisateurs variés, un pare-feu peut être placé au niveau de la couche proxy de transfert.

Gardez à l'esprit que les proxys directs doivent être configurés manuellement pour être utilisés, tandis que les proxys inverses peuvent passer inaperçus pour le client. Selon que l'adresse IP d'un client est transmise au serveur d'origine par le proxy de transfert, la confidentialité et l'anonymat peuvent être accordés ou laissés transparents.

Il existe plusieurs options à considérer pour les proxys directs :

Comprendre les proxys inverses

Un proxy inverse agit en tant que représentant d'un serveur Web, traitant les demandes entrantes des clients en son nom. Ce serveur Web peut être un serveur unique ou plusieurs serveurs. De plus, il peut s'agir d'un serveur d'applications tel que Gunicorn. Dans les deux cas, une demande viendrait d'un client via Internet au sens large. Normalement, cette demande ira directement au serveur Web qui dispose des ressources demandées par le client. Au lieu de cela, un proxy inverse agit comme un intermédiaire, isolant le serveur Web d'une interaction directe avec l'Internet ouvert.

Du point de vue du client, l'interaction avec un proxy inverse n'est pas différente de l'interaction directe avec le serveur Web. C'est fonctionnellement le même, et le client ne peut pas faire la différence. Le client demande une ressource puis la reçoit, sans aucune configuration supplémentaire requise par le client.

Les proxys inverses offrent des fonctionnalités telles que :

  • Sécurité centralisée pour la couche serveur Web.
  • Diriger le trafic entrant en fonction de règles que vous pouvez configurer.
  • Fonctionnalité ajoutée pour la mise en cache.

Alors que la sécurité centralisée est un avantage des proxys directs et inverses, les proxys inverses le fournissent à la couche serveur Web et non à la couche client. Au lieu de se concentrer sur la maintenance des pare-feu au niveau du serveur Web, qui peut contenir plusieurs serveurs avec différentes configurations, la majorité de la sécurité du pare-feu peut être concentrée sur la couche proxy inverse. De plus, la suppression de la responsabilité de l'interface avec un pare-feu et de l'interface avec les demandes des clients loin des serveurs Web leur permet de se concentrer uniquement sur le service des ressources.

Dans le cas de plusieurs serveurs existant derrière un proxy inverse, le proxy inverse gère également la direction des requêtes vers quel serveur. Plusieurs serveurs Web peuvent servir la même ressource, chacun servant différents types de ressources, ou une combinaison des deux. Ces serveurs peuvent utiliser le protocole HTTP comme serveur Web classique, mais peuvent également inclure des protocoles de serveur d'applications tels que FastCGI. Vous pouvez configurer un proxy inverse pour diriger les clients vers des serveurs spécifiques en fonction de la ressource demandée ou pour suivre certaines règles concernant la charge du trafic.

Les proxys inverses peuvent également tirer parti de leur placement devant les serveurs Web en offrant une fonctionnalité de mise en cache. Les actifs statiques volumineux peuvent être configurés avec des règles de mise en cache pour éviter d'atteindre les serveurs Web à chaque demande, certaines solutions offrant une option pour servir les actifs statiques directement sans toucher du tout au serveur Web. De plus, le proxy inverse peut gérer la compression de ces actifs.

Le serveur Web populaire Nginx est également une solution de proxy inverse populaire. Bien que le serveur Web Apache dispose également d'une fonctionnalité de proxy inverse, il s'agit d'une fonctionnalité supplémentaire pour Apache alors que Nginx a été initialement conçu et se concentre sur la fonctionnalité de proxy inverse.

Différencier les cas d'utilisation du proxy direct et du proxy inverse

Étant donné que «forward» et «reverse» ont des connotations de directionnalité et des comparaisons trompeuses avec le trafic «entrant» et «sortant», ces étiquettes peuvent prêter à confusion car les deux types de proxys gèrent les demandes et les réponses. Au lieu de cela, une meilleure façon de différencier les proxys directs et inverses consiste à examiner les besoins de l'application que vous créez.

Un proxy inverse est utile lors de la création d'une solution pour servir des applications Web sur Internet. Ils représentent vos serveurs Web dans toutes les interactions avec Internet.

Un proxy direct est utile lorsqu'il est placé devant le trafic client pour votre usage personnel ou dans un environnement de travail. Ils représentent le trafic de votre client dans toutes les interactions avec Internet.

Différencier par cas d'utilisation au lieu de se concentrer sur les conventions de dénomination similaires vous aidera à éviter toute confusion.

Conclusion

Cet article a défini ce qu'est un proxy, les deux types principaux étant le proxy direct et le proxy inverse. Des cas d'utilisation pratiques et une exploration des fonctionnalités bénéfiques ont été utilisés pour différencier les proxys directs et les proxys inverses. Si vous souhaitez explorer la mise en œuvre des proxys, vous pouvez consulter notre guide sur comment configurer Nginx en tant que serveur Web et proxy inverse pour Apache sur un serveur Ubuntu 20.04.