envoy fix para servir archivos grandes desde el backend / timeouts / descargas abortadas

Los clientes se quejaban de que no podían descargar archivos grandes de nuestros sitios web (por ejemplo, PiDoctor en PiCockpit.com).

Inicialmente no pude replicar el problema localmente, los archivos parecían descargarse bien.

Después de investigar más a fondo, determiné que las descargas se cortaban después de cierto tiempo, dependiendo de la velocidad de descarga, por lo que para algunos clientes las descargas fallaban.

Como tengo una conexión razonablemente rápida, para mí las descargas funcionarán.

El tiempo de espera resulta ser 15 segundos.

Un mensaje de depuración de envoy podría ser algo así:

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


Una investigación posterior con la documentación de Envoy mostró que, efectivamente, existía ese tiempo de espera por defecto:

imagen

Por lo tanto, el tiempo de espera debe establecerse en 0s para la ruta respectiva:

imagen

o uno con más contexto:

imagen

en texto claro:

route_config:
   virtual_hosts:
   - nombre: backend
     dominios: ["*"]
     rutas:
     - coincidencia: { prefijo: "/.well-known/acme-challenge/"}
       ruta:
         cluster: target_certbot
         tiempo de espera: 0s

Establezca este tiempo de espera por ruta para permitir grandes descargas sin tiempos de espera. Mantenga a sus clientes contentos, y ellos le mantendrán a usted contento.

Ref