Nginx proxy_cache / Varnish - solicitações paralelas acionam várias solicitações para backend?

1

Estou procurando um proxy reverso HTTP que manipulará os casos de uso de transmissão ao vivo HTTP de maneira eficiente. Suponha que os tamanhos de arquivo / fragmento sejam de até 4MB com um carregamento constante de solicitações do cliente para o mesmo arquivo, muito próximas (as solicitações que chegam enquanto o back-end satisfaz a primeira solicitação).

Serviços CDN não serão usados aqui.

O que acontece nos eventos abaixo para cada Nginx e Varnish (insira outra solução que você acredita ser mais apropriada também?)

  1. Client1 faz solicitação para inverter o proxy (proxy_cache ou Varnish), o arquivo não é armazenado em cache (MISS).
  2. O proxy faz solicitações para o back-end e tenta preencher o cache local e entregar resposta ao cliente1
  3. Enquanto a solicitação para Client1 está sendo atendida (antes da conclusão do proxy), outras solicitações simultâneas para o mesmo arquivo são feitas por outros clientes.

O objetivo é:

  1. O proxy bloqueia solicitações adicionais enquanto recupera o arquivo do back-end.
  2. O proxy servirá todos os clientes em espera ao mesmo tempo em que os dados chegam (conforme chegam, não depois que o arquivo inteiro é armazenado em buffer).
  3. Apenas uma solicitação para o back-end será feita a qualquer momento, para um arquivo específico. Todos os clientes devem ser atendidos pela resposta compartilhada do back-end. A exceção é se o cliente fizer uma solicitação de intervalo HTTP para um intervalo diferente de curso.

Qual solução é melhor quando arquivos maiores são solicitados assim? Se houver configurações importantes para alcançar o resultado desejado, compartilhe.

Obrigado!

    
por user1661898 01.04.2015 / 01:22

0 respostas