Reverse Proxy

Définition

Un Reverse Proxy est un serveur qui se place devant les serveurs backend et achemine les requêtes des clients vers un ou plusieurs serveurs d’application. Contrairement à un proxy forward (qui se place devant les clients), un Reverse Proxy se place devant les serveurs et agit comme intermédiaire pour les requêtes entrantes.

Les clients communiquent avec le Reverse Proxy comme s’il était le serveur d’origine ; le Reverse Proxy transmet ensuite la requête au serveur backend approprié et renvoie la réponse.

Reverse Proxy vs Forward Proxy

|| Fonctionnalité | Reverse Proxy | Forward Proxy | ||—————-|—————|—————| || Se place devant | Serveurs | Clients | || Objectif | Protéger/accélérer les serveurs | Anonymiser/surveiller les clients | || Visibilité | Les clients ne connaissent pas les backends | Les serveurs ne connaissent pas les clients | || Cas d’utilisation | Équilibrage de charge, mise en cache | Filtrage internet d’entreprise | || Exemple | NGINX, Cloudflare | Squid, proxy d’entreprise |

Fonctions du Reverse Proxy

|| Fonction | Description | ||———-|————-| || Load balancing | Répartition du trafic entre plusieurs backends | || SSL termination | Déchiffrement TLS, transmission non chiffrée aux backends | || Caching | Mise en cache des réponses pour réduire la charge des backends | || Compression | Compression des réponses avant envoi aux clients | || Protection DDoS | Absorption et filtrage du trafic malveillant | || Authentification | Gestion de l’authentification avant d’atteindre les backends | || Rate limiting | Limitation des requêtes par client | || URL rewriting | Réécriture des chemins avant transmission | || WAF | Règles de pare-feu d’applications web |

Outils Reverse Proxy courants

|| Outil | Type | Notes | ||——-|——|——-| || NGINX | Open-source | Le plus populaire, haute performance | || Apache httpd | Open-source | Modulaire, support .htaccess | || Traefik | Cloud-native | Découverte automatique Kubernetes/Docker | || HAProxy | Open-source | Équilibreur de charge dédié + Reverse Proxy | || Caddy | Open-source | HTTPS automatique, Let’s Encrypt intégré | || Envoy | Open-source | Cloud-native, sidecar service mesh | || Cloudflare | Cloud | CDN + Reverse Proxy + WAF |

Exemple de Reverse Proxy (NGINX)

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;

    location / {
        proxy_pass http://backend_app:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Termes associés

  • Load Balancer — le Reverse Proxy fournit une protection au niveau application
  • Web Server — NGINX/Apache agissent à la fois comme serveur web et Reverse Proxy

Références