Un reverse proxy est un serveur qui intercepte les demandes des clients, les transfère vers un ou plusieurs serveurs backend, et retourne la réponse au client—tout en cachant les détails des serveurs backend au client.
Contrairement à un proxy standard (auquel les clients se connectent explicitement), un reverse proxy est transparent pour le client. Le client se connecte à l'adresse du reverse proxy, croyant se connecter au service réel, tandis que le proxy achemine le trafic vers des serveurs backend cachés. Ce modèle est fondamental pour la mise à l'échelle et la sécurité de l'infrastructure moderne.
Comment ça fonctionne
Quand un client effectue une demande vers example.com, il se connecte au reverse proxy écoutant ce domaine. Le proxy inspecte la demande, décide quel serveur backend doit la traiter (en fonction de la charge, du chemin, du nom d'hôte ou d'autres règles), transfère la demande, reçoit la réponse et la renvoie au client. Le client ne connaît jamais l'adresse IP du serveur backend.
Usages courants
- Équilibrage de charge : Distribuer les demandes sur plusieurs serveurs backend pour éviter la surcharge.
- Terminaison SSL/TLS : Gérer le chiffrement HTTPS au niveau du proxy, réduisant la charge de calcul sur les backends.
- Cache et compression : Stocker ou compresser les réponses avant de les envoyer aux clients.
- Sécurité et masquage : Obscurcir les localisations des serveurs backend et les architectures sur Internet.
- Routage des demandes : Diriger le trafic vers différents backends selon le chemin, le nom d'hôte ou d'autres critères.
Exemple concret
Vous exécutez trois serveurs web backend en interne (10.0.1.5, 10.0.1.6, 10.0.1.7). Les clients ne les contactent jamais directement. Au lieu de cela, ils demandent myapp.example.com, qui pointe vers votre reverse proxy à 203.0.113.42. Le proxy distribue les demandes en round-robin sur les trois backends, collecte les réponses et les sert aux clients.
TipLes reverse proxies sont distincts des équilibreurs de charge, bien que les termes se chevauchent ; un équilibreur de charge est généralement une fonction qu'un reverse proxy exécute.