correção de enviado para servir grandes arquivos do backend / timeouts / downloads abortados
Os clientes queixavam-se de não poderem descarregar grandes ficheiros dos nossos sites (por exemplo, PiDoctor no PiCockpit.com).
Inicialmente eu não podia replicar o problema localmente, os arquivos pareciam estar baixando bem.
Após mais investigações, determinei que os downloads seriam cortados após um certo tempo - dependendo da velocidade de download, assim, para alguns clientes os downloads falhariam.
Porque eu tenho uma conexão razoavelmente rápida, para mim os downloads funcionariam.
O tempo esgotado acaba por ser 15 segundos.
Uma mensagem de depuração do enviado pode parecer algo parecido com isto:
penvoyage-athena-envoy | [2020-06-27 16:18:57.492][21][debug][router] [source/common/router/router.cc:681] [C37][S12388594366303232323] upstream timeout
Uma investigação mais aprofundada com a documentação do Enviado mostrou que, de facto, houve um tempo limite por defeito:
Portanto, o timeout precisa ser definido como 0s para a respectiva rota:
ou um com mais contexto:
em texto claro:
route_config:
virtual_hosts:
- nome: backend
domínios: [“*”]
rotas:
- ...partida: Prefixo: "/.well-known/acme-challenge/"}
rota:
cluster: target_certbot
tempo esgotado: 0s
Defina este timeout por rota para permitir grandes downloads sem timeouts. Mantenha seus clientes felizes, e eles o manterão feliz.