Wie geht der Varnish-Cache mit unterschiedlichen Domänen um?

Wie geht der Varnish-Cache mit unterschiedlichen Domänen um?

Ich habe gerade angefangen, mich über Varnish zu informieren und überlege, es als Frontend für meine Webserver zu verwenden. Auf meinem Webserver befinden sich mehrere Domänen, die bei Verwendung derselben Abfragezeichenfolgen denselben Inhalt abrufen. Nehmen wir also an, ein Client besucht:

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

Und später kommt jemand anderes zu Besuch:

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

Würde Varnish die Ergebnisse des ersten Besuchs zwischenspeichern und für den zweiten Client verwenden? Danke!

BEARBEITEN:Nach einigem Lesen klingt es, als ob Folgendes funktionieren könnte:

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

Anstatt die Variable http.host zum Hash hinzuzufügen, wird sie ignoriert.

Antwort1

Sie können es mehr oder weniger so konfigurieren. Standardmäßig wird (und sollte) es das nicht tun.

AusFAQ/Anleitung zu Varnish

Ich habe eine Site mit vielen Hostnamen. Wie verhindere ich, dass sie den Cache vervielfachen?

Sie können dies tun, indem Sie den Header „Host“ für alle Ihre Hostnamen normalisieren. Hier ist ein VCL-Beispiel:

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

Antwort2

Ich habe 3 Domänen auf meiner VM, ich verwende Nginx und Varnish, derzeit verwende ich eine Pre-Prod-Konfiguration und Folgendes mache ich:

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

Ich verwende Nginx:80 als Proxy, WENN die Domain Varnish benötigt, andernfalls verwende ich FastCGI-Sachen. In diesem Beispiel sind die Websites, die nicht Varnish verwenden, nicht von Varnish betroffen. Es sieht blöd aus, aber es funktioniert ;-) und keiner meiner Kunden beschwert sich (noch) nicht....

verwandte Informationen