Verniz na frente de vários servidores com versionamento

Verniz na frente de vários servidores com versionamento

Eu tenho o Varnish na frente de vários servidores web, posso executá-los como nativos do verniz ou através de verificações upstream via nginx, mas apenas o conteúdo estático é armazenado em cache (sem surpresa), respeitando também as strings de consulta, ou seja

/main.css?v=1e /main.css?=v2são armazenados em cache separadamente

Eu atualizo os servidores um por um, na verdade, tudo isso não pode ser feito exatamente ao mesmo tempo sem tempo de inatividade, coisa de implantação geral.

Se main.cssfor atualizado emumbackend e eu envio solicitação de acordo com a nova versão da página para o verniz e request /main.css?=v2, ele ainda pode procurar arquivo na máquina que tem versão antiga e onde main.cssainda não foi atualizado, então, agora estou recebendo v1 no cache como v2 e não há nada que eu possa fazer, a menos que o TTL expire (o que é tarde demais).

Posso invalidar manualmente o cache por meio de solicitações, tudo bem.

Existe alguma solução automatizada sem interferência manual na reescrita do software para feedback ao verniz? como:

  1. É possível expirar o cache quando o back-end for ativado, depois que a investigação estiver boa?
  2. algo mais?

Obrigado

Responder1

Se você carregar esse código, ou adaptá-lo para sua versão do verniz, poderá enviar solicitações do tipo PURGE, com o URL da solicitação correspondente ao item que você deseja limpar, para limpar o item do cache do verniz. Você pode usar isso para automatizar basicamente a limpeza seletiva no final do processo de implantação em seus servidores Varnish, por meio de comandos cURL ou similares.

https://github.com/dreamhost/varnish-vcl-collection/blob/master/lib/purge.vcl

informação relacionada