Como ajustar os tempos limite do proxy inverso para carregamentos de fotografias e vídeos de grandes dimensões

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

Defina os tempos limite do proxy com base no carregamento legítimo mais lento que aceitará, com alguma margem, e mantenha a aplicação e qualquer proxy a montante pelo menos tão permissivos. Não resolva todos os carregamentos falhados escolhendo um tempo limite ilimitado.

Uma fotografia ou um vídeo grande pode falhar enquanto a mesma aplicação funciona normalmente, porque o corpo do pedido, o processamento a montante ou a resposta ultrapassa um limite diferente. Registe primeiro o código de estado, o tempo decorrido, o tamanho do ficheiro e o registo do proxy. Estas observações distinguem uma rejeição por tamanho do corpo de um tempo limite de inatividade, de um tempo limite do backend ou de uma desconexão do cliente.

Identifique a fase que termina o carregamento

Repita o teste com um ficheiro conhecido e registe se a falha ocorre durante a transferência, depois de a barra de progresso atingir 100 por cento ou enquanto o servidor processa os conteúdos multimédia. Cada fase corresponde a uma ligação e a um tempo limite diferentes.

Uma falha consistente na mesma quantidade de bytes sugere um limite de tamanho do corpo; uma falha após o mesmo intervalo de inatividade sugere um tempo limite. Um erro do gateway depois da conclusão do carregamento aponta para a espera entre o proxy e a aplicação ou para o próprio limite de processamento da aplicação.

Leia os registos de acesso e de erros do proxy juntamente com os registos da aplicação. Se o cliente fechou primeiro a ligação, aumentar apenas o tempo limite do proxy não ajudará; verifique o comportamento em segundo plano do dispositivo móvel, a estabilidade da VPN e o percurso do pedido no navegador.

Calcule um orçamento de tempo limite justificável

Divida o maior ficheiro aceite pela velocidade de carregamento a montante mais lenta suportada para estimar o tempo de transferência e, em seguida, acrescente margem para TLS, armazenamento temporário em memória e variações do débito. Use este valor como limite máximo para uma operação legítima, não como uma promessa de que todas as ligações lentas devem permanecer abertas indefinidamente.

Diferencie a duração total da duração de inatividade. Por exemplo, o NGINX documenta diretivas de tempo limite do proxy separadas, e algumas medem o intervalo entre operações sucessivas, em vez da duração de toda a resposta.

Tenha em conta o risco de negação de serviço. Restrinja os endpoints de carregamento através de autenticação e controlos de velocidade antes de aumentar substancialmente a duração das ligações e não exponha a interface de administração do proxy.

Alinhe todas as camadas sem corrigir em excesso

Defina o tamanho do corpo do pedido para um valor igual ou superior ao máximo suportado pela aplicação. Em seguida, alinhe os tempos limite de leitura do corpo do cliente, de ligação a montante, de leitura a montante e de envio a montante de acordo com a fase de falha observada.

Verifique se existe uma CDN externa, um túnel, um balanceador de carga ou um segundo proxy inverso com um limite imutável mais curto. O limite efetivo é o mais pequeno da cadeia, pelo que alterar apenas o proxy interno pode não produzir qualquer resultado observável.

Mantenha documentados os URLs da aplicação e as rotas do proxy. O guia da ZimaSpace sobre o Immich numa partilha de rede ajuda a distinguir erros do percurso de carregamento da latência e das interrupções da montagem do armazenamento.

-15% OFF

Volte a testar carregamentos lentos, grandes e interrompidos

Carregue o ficheiro original que falhou, a partir da localização original e com a velocidade de rede original. Um teste bem-sucedido exige a conclusão, a indexação pela aplicação e um conteúdo reproduzível ou visualizável - não apenas um código de sucesso HTTP.

Limite uma ligação de teste à velocidade mínima suportada e repita o teste. Em seguida, interrompa deliberadamente um carregamento; os ficheiros temporários e os registos incompletos da base de dados devem ser limpos de acordo com o comportamento da aplicação.

Pare de aumentar os tempos limite quando os registos mostrarem uma falha do backend, um erro de armazenamento ou um limite fixo do fornecedor externo. Reverta valores excessivos, corrija a camada em falha e mantenha o tempo limite mais reduzido que cubra consistentemente a carga de trabalho medida.

Perguntas frequentes

Todos os tempos limite do proxy devem usar o mesmo valor? Não. O estabelecimento da ligação, as leituras do corpo do cliente, as esperas pela resposta a montante e os envios a jusante protegem fases diferentes.

Porque é que uma fotografia pequena funciona, mas um vídeo falha? O vídeo pode ultrapassar um limite de tamanho do corpo, demorar mais do que um limite de inatividade ou desencadear um processamento mais longo no servidor; os registos e o momento da falha identificam qual deles ocorre.

Suporte e Dicas

Mais para Ler

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.