Como o cache do Varnish lida com diferentes domínios?

Como o cache do Varnish lida com diferentes domínios?

Acabei de começar a ler sobre o Varnish e estou pensando em usá-lo como frontend para meus servidores web. Tenho vários domínios em meu servidor da web que buscam o mesmo conteúdo quando as mesmas strings de consulta são usadas. Então, digamos que um cliente visite:

http://domain1.com/script.php?string1=abc&string2=123

E mais tarde, outra pessoa visita:

http://domain2.com/script.php?string1=abc&string2=123

O Varnish armazenaria em cache os resultados da primeira visita e os usaria para o segundo cliente? Obrigado!

EDITAR:Depois de mais algumas leituras, parece que o seguinte pode funcionar:

sub vcl_hash {
    set req.hash += req.url;
    return (hash);
}

Então, em vez de adicionar a variável http.host ao hash, ele a ignora.

Responder1

Você pode configurá-lo para fazer isso, mais ou menos. Por padrão, isso não acontecerá (e não deveria).

DePerguntas frequentes/Como fazer sobre verniz

Tenho um site com muitos nomes de host. Como evito que eles multipliquem o cache?

Você pode fazer isso normalizando o cabeçalho “Host” para todos os seus nomes de host. Aqui está um exemplo de VCL:

if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }

Responder2

Tenho 3 domínios em minha VM, estou usando Nginx e Varnish, atualmente estou em uma configuração de pré-produção, aqui está o que estou fazendo:

NGINX:80 ==> VARNISH:8080 ==> NGINX:8081

Estou usando o Nginx: 80 como um proxy SE o domínio precisar do Varnish, caso contrário, eu uso o material FastCGI. Neste exemplo, os sites que não são do Varnish não são afetados pelo Varnish. Parece estúpido, mas funciona ;-) e nenhum dos meus clientes reclama (ainda....).

informação relacionada