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:
Daarom moet de time-out voor de betreffende route op 0s worden gezet:
of een met meer context:
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.