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 ProxyReverse Proxy
Placé devantLes clientsLes serveurs
ReprésenteLe client auprès du serveurLe serveur auprès du client
MasqueL’identité du clientL’identité du serveur
Configuré parLe client (explicitement)L’infrastructure (transparent)
Couche OSIL7 (Application)L7 (Application)
Cas d’usageContrôle sortant, cache, anonymatRoutage entrant, TLS, load balancing
ExemplesSquid, mitmproxy, PrivoxyNGINX, 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 expliciteProxy transparent
Configuration clientRequise (http_proxy=...)Aucune
Mise en placeCôté client ou OSCôté réseau (routeur, firewall)
TypeForward proxy généralementForward ou reverse
DétectionFacileDifficile
ExemplesSquid en entrepriseSquid en mode interception, CDN

Proxy vs NAT vs Load Balancer

Proxy (L7)NAT (L3/L4)Load Balancer
Couche OSIL7 ApplicationL3/L4 Réseau/TransportL4 ou L7
Comprend le contenuOui (URL, headers, body)Non (IP + ports seulement)L4 : non / L7 : oui
Peut modifier la requêteOui (headers, URL)Non (IP + port)Limité
AuthentificationOuiNonNon
CacheOuiNonNon
Filtrage de contenuOuiNonNon

Pour la comparaison détaillée Forward Proxy vs NAT → Forward Proxy vs NAT


Outils courants

OutilTypePoints forts
NGINXReverse proxyServeur web + reverse proxy généraliste, très performant
TraefikReverse proxyAuto-découverte Docker/Kubernetes, TLS automatique
HAProxyReverse proxy / LBHaute performance TCP/HTTP, très fiable en prod
CaddyReverse proxyTLS Let’s Encrypt natif, config simple
EnvoyReverse proxyBase d’Istio, très configurable, service mesh
SquidForward proxyRéférence entreprise : cache, filtrage, ACL
mitmproxyForward proxyInspection/debug HTTPS (développement)
PrivoxyForward proxyFiltrage pub, anonymisation
ingress-nginxReverse proxyKubernetes Ingress Controller
AWS ALBReverse proxyL7 managé sur AWS
CloudflareReverse proxyCDN + WAF + DDoS protection

Notes détaillées


En relation avec