Le mot « proxy » désigne une position, pas un produit : un élément placé au milieu d’une connexion qui relaie le trafic. Notre entrée de glossaire sur ce qu’est un serveur proxy présente l’idée de base. Cet article va un cran plus loin et examine les deux formes que vous rencontrerez le plus souvent, le proxy direct (forward proxy) et le proxy inverse (reverse proxy), qui reposent sur les mêmes mécanismes mais travaillent pour des côtés opposés de la connexion.
La confusion se comprend. Les deux reçoivent une requête, les deux la transmettent et les deux masquent quelque chose. La différence tient au camp qu’ils servent. Un proxy direct agit pour le client, et c’est ainsi que fonctionnent les proxys résidentiels. Un proxy inverse agit pour le serveur, comme le fait Nginx ou un CDN placé devant un site web. Une fois que vous savez quel côté un proxy sert, tout le reste en découle.
La différence en une phrase pour chacun
- Un proxy direct se place devant les clients. Le client choisit d’y faire passer son trafic, et le site web voit l’adresse IP du proxy au lieu de celle du client.
- Un proxy inverse se place devant les serveurs. Les clients s’y connectent en pensant qu’il s’agit du site web, et c’est lui qui décide quel serveur backend répond.
Un proxy direct masque donc le client aux yeux du serveur, et un proxy inverse masque les serveurs aux yeux du client.
Comment fonctionne un proxy direct
Un proxy direct se configure côté client. Vous saisissez son adresse dans un navigateur, dans les réglages du système d’exploitation, dans un script ou dans un outil de scraping, et dès lors vos requêtes passent d’abord par le proxy.
- Votre client se connecte au proxy et, pour la plupart des services commerciaux, s’authentifie avec un nom d’utilisateur et un mot de passe.
- Pour un site en HTTPS, le client demande au proxy d’ouvrir un tunnel vers la destination. Le proxy établit la connexion sortante et relaie les octets chiffrés sans les lire.
- La destination voit la connexion arriver depuis l’adresse IP du proxy : elle applique donc ses règles de localisation, de réputation et de limitation de débit à cette adresse, et non à la vôtre.
Les entreprises utilisent des proxys directs depuis des décennies pour filtrer et journaliser les sites consultés par leurs employés. Le marché commercial des proxys est lui aussi un marché de proxys directs : un service de proxys résidentiels ou ISP vous fournit des adresses IP de sortie dans les zones dont vous avez besoin, et les sites que vous visitez voient ces adresses. De nombreux fournisseurs placent une passerelle unique devant un vaste pool et choisissent la sortie pour vous à chaque requête : c’est le modèle backconnect. On le cherche parfois sous le nom de « reverse rotating proxy », mais il s’agit toujours d’un proxy direct : il agit pour vous, le client.
Comment fonctionne un proxy inverse
Un proxy inverse se configure côté serveur, et les clients ignorent généralement sa présence. L’enregistrement DNS du site pointe vers le proxy inverse, si bien que chaque visiteur se connecte à lui.
- Le navigateur du visiteur se connecte à ce qu’il croit être le site web.
- Le proxy inverse termine généralement la connexion TLS, lit la requête et décide où l’envoyer : vers quel serveur backend, quel service, ou directement depuis son cache.
- Il transmet la requête au backend choisi, souvent en ajoutant un en-tête comme
X-Forwarded-Forpour que l’application connaisse toujours l’adresse IP réelle du visiteur. - Il renvoie la réponse du backend au visiteur comme s’il l’avait produite lui-même.
Nginx, HAProxy, Envoy et Traefik sont des proxys inverses courants, et les CDN comme les services de protection DDoS fonctionnent de la même manière à l’échelle mondiale. On en déploie un pour répartir la charge entre plusieurs serveurs, gérer les certificats TLS en un seul endroit, mettre en cache, compresser, et disposer d’une couche de protection capable d’absorber les attaques et de bloquer le trafic malveillant avant qu’il n’atteigne l’application.
Côte à côte
| Proxy direct | Proxy inverse | |
|---|---|---|
| Agit pour le compte de | Le client | Le serveur |
| Qui le configure | L’utilisateur ou son entreprise | L’exploitant du site |
| Qui sait qu’il est là | Le client | L’exploitant ; les visiteurs, en général, non |
| Ce que voit l’autre côté | L’IP du proxy au lieu de celle du client | Le proxy au lieu des vrais serveurs |
| Logiciels ou services typiques | Squid, passerelles d’entreprise, services de proxys résidentiels et ISP | Nginx, HAProxy, Envoy, CDN, pare-feu applicatifs web |
| Usages typiques | Tests de localisation, collecte de données, contrôle d’accès, confidentialité vis-à-vis de la destination | Répartition de charge, TLS, mise en cache, protection contre les attaques |
Un troisième type, le proxy transparent, intercepte le trafic sans que le client ait quoi que ce soit à configurer, par exemple sur le réseau d’un hôtel ou d’une école. Il agit pour l’exploitant du réseau plutôt que pour vous, et il ne change rien à la distinction entre direct et inverse décrite ci-dessus.
Quand vous avez besoin d’un proxy direct
Vous avez besoin d’un proxy direct lorsque la question porte sur la façon dont votre propre trafic sortant apparaît aux autres sites :
- Vous devez voir un site depuis un autre pays ou une autre ville. Les prix, les résultats de recherche, les publicités et les contenus varient selon la localisation, et seule une adresse IP située sur place vous montre la version locale.
- Vous collectez des données web publiques en volume. Répartir les requêtes sur de nombreuses adresses IP résidentielles maintient chaque adresse sous les limites de débit que les sites appliquent par IP.
- Vous gérez des comptes qui doivent conserver une même localisation. C’est là que le modèle des proxys ISP convient : chaque proxy reste dans la ville et chez l’ISP que vous choisissez pendant toute la période de facturation, tout en gardant le même nom d’utilisateur.
- Votre entreprise contrôle les accès sortants. Un proxy direct d’entreprise applique la politique interne et journalise ce qui quitte le réseau.
Le choix du protocole est une question distincte du choix du type de proxy ; notre guide proxys HTTP ou SOCKS5 la traite en détail.
Quand vous avez besoin d’un proxy inverse
Vous avez besoin d’un proxy inverse lorsque la question porte sur la façon dont le trafic entrant atteint vos propres serveurs :
- Vous exploitez plus d’un serveur backend et devez répartir la charge et résister à la panne de l’un d’eux.
- Vous voulez un point unique pour gérer TLS, les redirections, la compression et la mise en cache.
- Vous voulez vous protéger contre les inondations de requêtes et les bots abusifs avant qu’ils n’atteignent votre application.
- Vous voulez exposer plusieurs services internes sous un même domaine, par exemple
/apiet/app.
Si vous exploitez uniquement un site web, c’est un proxy inverse qu’il vous faut, pas un proxy direct, et votre hébergeur ou votre CDN s’en charge souvent pour vous.
Quand vous avez besoin des deux
De nombreuses entreprises utilisent les deux, pour des sens de trafic différents. Une équipe de veille tarifaire, par exemple, fait passer sa collecte sortante par des proxys directs situés dans les marchés qu’elle surveille, et place un proxy inverse devant le tableau de bord et l’API qu’utilisent ses clients.
Les deux se croisent aussi à chaque requête que vous envoyez via un proxy direct. La plupart des grands sites se trouvent derrière un proxy inverse ou un CDN qui examine les visiteurs avant que l’application ne les voie. C’est cette couche périphérique qui juge votre proxy direct : la réputation et le type de son adresse IP, le nombre de requêtes qui en proviennent et la ressemblance de la connexion avec celle d’un vrai navigateur. C’est pourquoi l’IP de sortie compte davantage que le logiciel proxy, et pourquoi les requêtes issues de plages de datacenter sont bien plus souvent soumises à des vérifications que celles provenant de connexions domestiques.
FAQ
Un VPN est-il un proxy direct ?
Il joue un rôle similaire, puisqu’il agit pour le client et masque son adresse IP aux sites web. Un VPN achemine généralement tout le trafic de l’appareil au niveau réseau, tandis qu’un proxy direct se configure par application ou par requête.
Un répartiteur de charge est-il un proxy inverse ?
La plupart des répartiteurs de charge qui travaillent au niveau HTTP sont des proxys inverses : ils acceptent la connexion du client et choisissent un backend vers lequel la transmettre. Certains répartiteurs travaillent à un niveau plus bas et se contentent d’acheminer des paquets, ce qui en fait un autre type d’outil.
Un même serveur peut-il servir à la fois de proxy direct et de proxy inverse ?
Oui. Des logiciels comme Nginx ou Squid peuvent être configurés dans un sens ou dans l’autre, et certaines installations font les deux. Le rôle dépend de la configuration et du trafic que le proxy prend en charge, pas du logiciel.
Les proxys résidentiels sont-ils des proxys directs ou inverses ?
Directs. Vous les configurez dans votre client, ils agissent pour votre compte, et les sites que vous visitez voient l’adresse IP résidentielle de sortie au lieu de la vôtre.
En résumé
Demandez-vous de quel côté se trouve le proxy. S’il vous représente auprès des sites que vous visitez, c’est un proxy direct, et ce sont les adresses IP qu’il vous fournit qui comptent. S’il représente un site auprès de ses visiteurs, c’est un proxy inverse, et son rôle concerne la charge, la sécurité et la rapidité. La plupart des équipes qui collectent des données sur le web ont besoin du premier, et la plupart de celles qui exploitent un site disposent déjà du second. Les proxys directs de Shifter sont proposés avec un essai gratuit sur shifter.io/order, pour que vous puissiez les tester sur les sites qui vous intéressent avant de choisir une offre.