Aller au contenu
EdgeServers
Blog

Les patterns de reverse proxy Nginx que nous faisons réellement tourner en production

18 mai 2026 · 1 min de lecture · par Sudhanshu K.

La plupart des configs de reverse proxy Nginx en production sont un copier-coller d'un blog de 2017. Ça marche, en quelque sorte. Le keep-alive vers le backend est éteint, donc chaque requête ouvre une nouvelle connexion. La chaîne X-Forwarded-For est fausse, donc l'application logue la mauvaise IP cliente. proxy_buffering est activé par défaut, ce qui ajoute de la latence sur les réponses streamées. Aucune n'est une panne dramatique — ce sont des taxes lentes et constantes que vous ne remarquez que lorsque vous lisez ce que vous avez déployé.

Voici la config de reverse proxy que nous copions sur l'edge de chaque client.

Le bloc upstream minimum viable

upstream app {
    server 10.0.1.10:8080 max_fails=3 fail_timeout=15s;
    server 10.0.1.11:8080 max_fails=3 fail_timeout=15s;
    keepalive 32;
    keepalive_requests 1000;
    keepalive_timeout 60s;
}
 
location / {
    proxy_pass http://app;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    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;
    proxy_read_timeout 60s;
}

Le keepalive 32 + Connection "" est non négociable. Sans ça, vous re-handshakez TCP vers le backend à chaque requête — et pour du trafic interne à haut RPS, ça double la latence sans raison.

L'article complet couvre :

  • La chaîne X-Forwarded-For — et le bloc real_ip_header qui fait que l'app voit la bonne IP
  • proxy_buffering vs réponses streamées (Server-Sent Events, gros téléchargements)
  • Health checks : passifs (max_fails/fail_timeout) vs actifs (Nginx Plus commercial ou ngx_http_upstream_check_module)
  • proxy_next_upstream — quand les retries aident et quand ils causent des duplications de write
  • Limites de taille de body (client_max_body_size) et où elles mordent les uploads
  • Le pattern TLS-to-backend quand vous en avez réellement besoin

Nous livrons cette config sur chaque install Nginx managée.

Article complet disponible

Lire l'article complet