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.
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

Uma galeria autoalojada pode preservar o emparelhamento das Live Photos da Apple?
Uma decisão condicional para um servidor doméstico relativa ao emparelhamento de Live Photos da Apple, com testes controlados, interpretação dos resultados, reversão e perguntas...

Pode importar o Google Takeout e as cópias de segurança do telemóvel para uma única biblioteca de fotografias?
Uma decisão condicional para um servidor doméstico com importação combinada de fotografias, testes controlados, interpretação dos resultados, reversão e perguntas frequentes específicas.

O Immich pode usar uma biblioteca externa sem assumir a propriedade dos ficheiros?
Uma decisão condicional de servidor doméstico sobre a propriedade de bibliotecas externas do Immich, com testes controlados, interpretação dos resultados, reversão e perguntas frequentes...

