Un proxy est un serveur intermédiaire qui se place entre deux parties qui communiquent. Il reçoit les requêtes d’un côté, les transmet de l’autre, et peut les inspecter, les modifier, les journaliser ou les bloquer au passage.
Sans proxy :
Client ────────────────────────────► Serveur
Avec proxy :
Client ──► [ Proxy ] ──────────────► Serveur
intercepte, inspecte,
filtre, journalise, cache
Les deux grandes familles
| Forward Proxy | Reverse Proxy | |
|---|---|---|
| Placé devant | Les clients | Les serveurs |
| Représente | Le client auprès du serveur | Le serveur auprès du client |
| Masque | L’identité du client | L’identité du serveur |
| Configuré par | Le client (explicitement) | L’infrastructure (transparent) |
| Couche OSI | L7 (Application) | L7 (Application) |
| Cas d’usage | Contrôle sortant, cache, anonymat | Routage entrant, TLS, load balancing |
| Exemples | Squid, mitmproxy, Privoxy | NGINX, Traefik, HAProxy, Caddy |
Forward Proxy — mandataire sortant
Le forward proxy intercepte le trafic sortant des clients vers Internet.
Réseau interne Forward Proxy Internet
Client A ──┐ ┌── google.com
Client B ──┼──────────────► [ Squid ] ─────────────┤── github.com
Client C ──┘ les serveurs voient l'IP du proxy └── (bloqué ❌)
Usages typiques :
- Filtrer les sites accessibles dans un réseau d’entreprise
- Journaliser tout le trafic sortant (conformité, audit)
- Mettre en cache les ressources fréquentes (économie de bande passante)
- Masquer les IPs des clients pour du scraping ou des tests
- Inspecter le trafic HTTPS (SSL inspection / MITM contrôlé)
Reverse Proxy — point d’entrée des services
Le reverse proxy intercepte le trafic entrant vers les serveurs.
Internet Reverse Proxy Réseau interne
Client ──────────► [ NGINX / Traefik ] ──┬──► Backend API :8080
point d'entrée ├──► Backend Frontend :3000
unique └──► Backend Auth :3001
(client ne connaît jamais ces IPs)
Usages typiques :
- Terminaison TLS (HTTPS côté client, HTTP côté backend)
- Routage par URL path ou header
Host - Load balancing entre instances d’un service
- Mise en cache des réponses statiques
- Rate limiting et WAF (Web Application Firewall)
- Authentification centralisée
Proxy transparent vs proxy explicite
| Proxy explicite | Proxy transparent | |
|---|---|---|
| Configuration client | Requise (http_proxy=...) | Aucune |
| Mise en place | Côté client ou OS | Côté réseau (routeur, firewall) |
| Type | Forward proxy généralement | Forward ou reverse |
| Détection | Facile | Difficile |
| Exemples | Squid en entreprise | Squid en mode interception, CDN |
Proxy vs NAT vs Load Balancer
| Proxy (L7) | NAT (L3/L4) | Load Balancer | |
|---|---|---|---|
| Couche OSI | L7 Application | L3/L4 Réseau/Transport | L4 ou L7 |
| Comprend le contenu | Oui (URL, headers, body) | Non (IP + ports seulement) | L4 : non / L7 : oui |
| Peut modifier la requête | Oui (headers, URL) | Non (IP + port) | Limité |
| Authentification | Oui | Non | Non |
| Cache | Oui | Non | Non |
| Filtrage de contenu | Oui | Non | Non |
Pour la comparaison détaillée Forward Proxy vs NAT → Forward Proxy vs NAT
Outils courants
| Outil | Type | Points forts |
|---|---|---|
| NGINX | Reverse proxy | Serveur web + reverse proxy généraliste, très performant |
| Traefik | Reverse proxy | Auto-découverte Docker/Kubernetes, TLS automatique |
| HAProxy | Reverse proxy / LB | Haute performance TCP/HTTP, très fiable en prod |
| Caddy | Reverse proxy | TLS Let’s Encrypt natif, config simple |
| Envoy | Reverse proxy | Base d’Istio, très configurable, service mesh |
| Squid | Forward proxy | Référence entreprise : cache, filtrage, ACL |
| mitmproxy | Forward proxy | Inspection/debug HTTPS (développement) |
| Privoxy | Forward proxy | Filtrage pub, anonymisation |
| ingress-nginx | Reverse proxy | Kubernetes Ingress Controller |
| AWS ALB | Reverse proxy | L7 managé sur AWS |
| Cloudflare | Reverse proxy | CDN + WAF + DDoS protection |
Notes détaillées
- Reverse Proxy — fonctionnement, fonctionnalités, NGINX, load balancing, implémentations
- Forward Proxy — fonctionnement, Squid, mitmproxy, cas d’usage entreprise
- Forward Proxy vs NAT — comparaison couche OSI, flux réseau, capacités, coexistence
- Load Balancer vs Forward Proxy — comparaison détaillée : position, trafic entrant vs sortant, flux, cas d’usage
En relation avec
- Load Balancer — le reverse proxy L7 intègre souvent du load balancing
- NAT — masque aussi les IPs mais au niveau réseau sans logique applicative
- TLS et SSL — le reverse proxy termine TLS ; le forward proxy peut l’inspecter (SSL inspection)
- Certificats — Vue d’ensemble — le reverse proxy présente un certificat TLS aux clients
- API — Vue d’ensemble — le reverse proxy est souvent la porte d’entrée des APIs
- Pile réseau — Vue d’ensemble — position du proxy dans la pile OSI