envoy fix voor het serveren van grote bestanden van de backend / timeouts / afgebroken downloads

Klanten klaagden erover dat ze geen grote bestanden van onze websites konden downloaden (bv. PiDoctor op PiCockpit.com).

In eerste instantie kon ik het probleem niet lokaal repliceren, de bestanden leken goed te downloaden.

Na verder onderzoek stelde ik vast dat de downloads na een bepaalde tijd werden afgebroken - afhankelijk van uw downloadsnelheid, dus voor sommige klanten mislukten de downloads.

Omdat ik een redelijk snelle verbinding heb, zouden voor mij de downloads werken.

De time-out blijkt te zijn 15 seconden..

Een debug bericht van envoy zou er ongeveer zo uit kunnen zien:

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


Nader onderzoek van de Envoy documentatie wees uit dat er inderdaad zo'n standaard time-out was:

afbeelding

Daarom moet de time-out voor de betreffende route op 0s worden gezet:

afbeelding

of een met meer context:

afbeelding

in duidelijke tekst:

route_config:
   virtual_hosts:
   - naam: backend
     domeinen: ["*"]
     routes:
     - match: { prefix: "/.well-known/acme-challenge/"}
       route:
         cluster: target_certbot
         timeout: 0s

Stel deze per route time-out in om grote downloads toe te staan zonder time-outs. Houd uw klanten tevreden, en zij zullen u tevreden houden.

Ref