Proxy reverso de armazenamento em cache de failover

3

Existe uma maneira de configurar o verniz ou qualquer outro proxy reverso de cache, para servir as páginas de seu cache quando o back-end falha? No momento, se o back-end cair, um erro 503 Service Unavailable seria retornado ao navegador. Eu preferiria que os visitantes vissem uma versão em cache do que uma página de erro enquanto o back-end estava sendo corrigido.

Minha configuração:

[verniz (ip público)] < === > [roteador] < === > [servidor da web (ip privado)]

PS: Eu tenho apenas um servidor da Web de back-end.

    
por sybreon 21.09.2009 / 05:04

6 respostas

3

Em teoria, se um objeto está desatualizado, você não quer que ele seja exibido pelo cache - se ele não estiver desatualizado, a expiração deverá ser definir mais tempo ...

Por outro lado, o Varnish reconhece que a teoria e a prática divergem, portanto, há a diretiva grace no VCL que eu penso lida com este caso, bem como os usos mais prosaicos documentados nessa página.

    
por 21.09.2009 / 07:09
3

Sim, existe, com o Squid. Mark Nottingham trabalhou nisso no Yahoo, veja este excelente post no blog para todos os detalhes.

Uma coisa, o Squid 3.0 é uma grande reescrita da base de código do Squid, portanto não implemente cegamente a versão mais nova do Squid, mas verifique primeiro quais versões do Squid têm essa funcionalidade. Pode não ser portado para o 3.0.

Eu acho que womble está certo sobre o Varnish e fazendo isso via VCL do Varnish, mas eu nunca configurei algo assim com o Varnish, então eu não posso dizer.

    
por 21.09.2009 / 12:53
1

2.1.0 introduziu o modo saint que funciona com graça: link

    
por 30.07.2010 / 12:41
0

Um hack que deve funcionar: Você pode gerar uma página em cache de tempos em tempos e configurar um manipulador 503 para usar a página em cache.

Adicione / Modifique conforme necessário ao seu conf:

ErrorDocument 503 /my_cached_page.html
    
por 21.09.2009 / 12:20
0

O verniz tem um recurso chamado "graça" que permite atribuir um período de tolerância durante o qual o objeto será preservado após a expiração do TTL. Se o seu backend cair, o Varnish serve o objeto enfeitado (obsoleto).

Confira:

link

    
por 07.12.2009 / 06:31
0

Sim; stale-if-error / max-stale está no Squid 2.7 e 2.HEAD, mas não 3.x (ainda).

    
por 03.05.2010 / 12:38