Regras de configuração do Varnish para armazenar em cache grandes arquivos MP3 e PDF?

4

Nosso site tem um grande número de arquivos PDF e MP3 que gostaríamos de armazenar em cache no Varnish como arquivos estáticos. Atualmente, não fazemos muito especial. Basta remover os cookies em vcl_recv e set resetp.ttl = 100w; em vcl_fetch .

O problema parece ser quando um desses arquivos é solicitado (talvez por navegadores mais antigos) e ainda não está no cache do Varnish. Há um atraso enquanto o Varnish baixa o arquivo do backend. No meu entender, ele não começa a ser entregue ao cliente até que os dados estejam totalmente carregados. Isso pode levar 20 segundos ou mais e, às vezes, o Adobe Acrobat ou o plugin MP3 ficam confusos.

Existe uma maneira para o pass do conteúdo diretamente enquanto o download é e salvá-lo no cache para a próxima solicitação de cliente correspondente?

    
por Nic Cottrell 12.06.2012 / 10:17

3 respostas

1

Sugestão de leitura: link

Com o vanilla Varnish 3.0, você pode definir beresp.do_stream como true em vcl_fetch. O arquivo será transmitido enquanto é buscado no back-end. A advertência: o objeto é definido como ocupado durante a transmissão, para que outros clientes sejam colocados em espera.

Há também uma versão 3.0.2 do Varnish com suporte a streaming "completo" disponível: link quais pessoas estão usando na produção, então talvez você queira tentar.

Ou talvez você possa "pré-atualizar" seus arquivos, colocando-os no cache de memória do Varnish antes que os usuários iniciem o download?

    
por 16.06.2012 / 23:59
1

A ramificação do streaming 3.0.2 + não está mais atualizada e só é suportada pelos assinantes do Varnish Plus, sem suporte da comunidade.

Então, se você precisa de recursos de streaming, você pode:

  • Experimente o Varnish Plus (disponível apenas para assinantes) que tem suporte incorporado para ele.
  • Teste e veja se o próximo Varnish Cache 4.0 (lançamento esperado no segundo trimestre de 2014) resolve esse problema para você (deve).
por 28.03.2014 / 15:44
0

Varnish 5.1.2 faz exatamente o que você quer com a configuração padrão.

Eu tentei com eventos enviados pelo servidor, onde eu preciso transmitir primeiro pedido e segundo pedido em cache. Apenas funciona.

    
por 02.06.2017 / 13:18