Comment résoudre l'erreur "Nginx Upstream Prematurely Closed Connection While Reading Response Header From Upstream" ?

Publié 17 octobre 2024

Problème : Erreur de connexion Nginx Upstream

L'erreur "Nginx upstream prematurely closed connection while reading response header from upstream" se produit lorsque Nginx ne peut pas obtenir une réponse complète d'un serveur en amont. Ce problème peut interrompre les applications et services web. Il conduit souvent à des requêtes incomplètes ou échouées, affectant les performances et la fiabilité du système.

Solution : Ajustement de la configuration Nginx

Augmentation des paramètres de timeout

Pour résoudre l'erreur "Upstream Prematurely Closed Connection", vous pouvez ajuster les paramètres de timeout dans votre configuration Nginx :

  • Modifier proxy_read_timeout : Ce paramètre contrôle le temps d'attente de Nginx pour que le serveur en amont envoie des données. Augmentez cette valeur pour permettre plus de temps pour les réponses volumineuses :
proxy_read_timeout 300s;
  • Ajuster proxy_connect_timeout : Ce paramètre détermine le temps d'attente de Nginx pour établir une connexion avec le serveur en amont. Augmentez cette valeur si votre serveur en amont met plus de temps à répondre :
proxy_connect_timeout 75s;
  • Définir send_timeout : Ce paramètre spécifie le temps d'attente de Nginx pour que le client accepte les données. Ajustez cette valeur en fonction des besoins de votre application :
send_timeout 60s;

Conseil: Surveiller et ajuster

Après avoir modifié les paramètres de timeout, surveillez les performances de votre serveur et ajustez les valeurs selon les besoins. Commencez par des augmentations modérées et affinez progressivement en fonction de vos exigences spécifiques et des modèles de trafic.

Optimisation des paramètres de buffer

L'optimisation des paramètres de buffer peut aider à prévenir l'erreur "Upstream Prematurely Closed Connection" :

  • Configurer proxy_buffers : Ce paramètre détermine le nombre et la taille des buffers pour lire la réponse du serveur en amont. Ajustez ces valeurs en fonction des ressources de votre serveur et des tailles de réponse typiques :
proxy_buffers 8 16k;
  • Ajuster proxy_buffer_size : Ce paramètre spécifie la taille du buffer utilisé pour lire la première partie de la réponse du serveur en amont. Augmentez cette valeur pour des en-têtes plus volumineux :
proxy_buffer_size 32k;
  • Affiner large_client_header_buffers : Ce paramètre contrôle le nombre maximum et la taille des buffers utilisés pour lire les en-têtes volumineux des requêtes clients. Ajustez ces valeurs si vous traitez des requêtes contenant de grands en-têtes :
large_client_header_buffers 4 32k;

En ajustant ces paramètres de configuration Nginx, vous pouvez souvent résoudre l'erreur "Upstream Prematurely Closed Connection" et améliorer la capacité de votre serveur à gérer des réponses volumineuses et des requêtes complexes.