correction de l'envoi de gros fichiers depuis le backend / délais d'attente / téléchargements interrompus

Les clients se plaignaient de ne pas pouvoir télécharger de gros fichiers à partir de nos sites web (par exemple, PiDoctor sur PiCockpit.com).

Au départ, je n'ai pas pu reproduire le problème localement, les fichiers semblaient se télécharger correctement.

Après une enquête plus approfondie, j'ai déterminé que les téléchargements s'interrompaient au bout d'un certain temps, en fonction de la vitesse de téléchargement, ce qui signifie que pour certains clients, les téléchargements échouaient.

Comme j'ai une connexion assez rapide, les téléchargements fonctionnent pour moi.

Le délai d'attente s'avère être 15 secondes.

Un message de débogage de envoy pourrait ressembler à quelque chose comme ceci :

penvoyage-athena-envoy | [2020-06-27 16:18:57.492][21][debug][router] [source/common/router/router.cc:681] [C37][S12388594366303232323] timeout amont


Une recherche plus approfondie dans la documentation d'Envoy a montré que, en effet, il y avait un tel délai par défaut :

image

Par conséquent, le délai d'attente doit être fixé à 0s pour la route respective :

image

ou un autre avec plus de contexte :

image

en texte clair :

route_config :
   virtual_hosts :
   - nom : backend
     domaines : ["*"]
     routes :
     - match : {préfixe : "/.well-known/acme-challenge/"}
       route :
         cluster : target_certbot
         timeout : 0s

Définissez ce délai d'attente par itinéraire pour permettre les gros téléchargements sans délai d'attente. Gardez vos clients heureux, et ils vous garderont heureux.

Réf.