
Recién comencé a leer sobre Varnish y estoy considerando usarlo como interfaz para mis servidores web. Tengo varios dominios en mi servidor web que obtienen el mismo contenido cuando se utilizan las mismas cadenas de consulta. Entonces digamos que un cliente visita:
http://domain1.com/script.php?string1=abc&string2=123
Y más tarde, alguien más visita:
http://domain2.com/script.php?string1=abc&string2=123
¿Varnish almacenaría en caché los resultados de la primera visita y los usaría para el segundo cliente? ¡Gracias!
EDITAR:Después de leer un poco más, parece que lo siguiente puede funcionar:
sub vcl_hash {
set req.hash += req.url;
return (hash);
}
Entonces, en lugar de agregar la variable http.host al hash, la ignora.
Respuesta1
Puedes configurarlo para que lo haga, más o menos. De forma predeterminada, no lo hará (y no debería).
DePreguntas frecuentes sobre barniz/Cómo hacerlo
Tengo un sitio con muchos nombres de host, ¿cómo evito que multipliquen el caché?
Puede hacer esto normalizando el encabezado "Host" para todos sus nombres de host. Aquí hay un ejemplo de VCL:
if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }
Respuesta2
Tengo 3 dominios en mi VM, estoy usando Nginx y Varnish, actualmente estoy en una configuración previa a la producción, esto es lo que estoy haciendo:
NGINX:80 ==> VARNISH:8080 ==> NGINX:8081
Estoy usando Nginx:80 como proxy SI el dominio necesita Varnish, si no, uso FastCGI. En este ejemplo, los sitios que no son Varnish no están afectados por Varnish. Parece estúpido pero funciona ;-) y ninguno de mis clientes se queja (todavía...).