Estou usando o Nginx como um proxy reverso de armazenamento em cache para arquivos grandes.
É importante para mim que o servidor de origem não precise gerar mais largura de banda do que o necessário. Então, se o download do arquivo começar com duas conexões, não quero que o nginx baixe o arquivo inteiro duas vezes.
Por isso, ativei proxy_cache_lock
, o que funciona para isso. Mas o segundo pedido tem que esperar até que o primeiro termine o download do arquivo.
Isso pode demorar muito e eu quero que o segundo pedido comece a ser baixado imediatamente.
Então, o que eu preciso é de um sistema em que duas solicitações (que serão solicitações de intervalo http) possam preencher o mesmo arquivo de cache, e cada solicitação só baixa seu intervalo do servidor de origem.
Isso só faz sentido para arquivos grandes, e é para isso que a maioria dos sistemas (verniz, nginx) parecem ser destinados. O Nginx funciona bem para arquivos grandes em geral, mas não nessa situação.
Existe um sistema de cache que poderia satisfazer minhas necessidades ou eu tenho que escrever o meu próprio? Eu acho que alguns CDNs poderiam ter requisitos semelhantes.