
Ich habe ein Setup, bei dem Varnish auf Port 80 hinter Apache auf Port 8080 lauscht, während ich beabsichtige, Nginx auf 8081 zu haben. Das Bedienfeld meines VPS unterstützt nur Apache, aber ich möchte eine der Sites testen, die ich auf meinem VPS auf Nginx gehostet habe, und da Varnish bereits auf 80 ist, kann ich Nginx nicht auf demselben Port haben.
Ich möchte Apache nicht komplett loswerden, da ich es immer noch brauche, um auf das Control Panel meines VPS zuzugreifen.Sentoraum genau zu sein, wo Apache auf 8080 sitzt. In der gestellten FrageHier, der OP wollte zwei verschiedene Domänen auf unterschiedlichen IPs nur auf Apache haben, also hilft das nicht wirklich.
Außerdem habe ich irgendwo gelesen, wie man die server.port
Direktive in meiner VCL verwendet, aber ich bin mir nicht sicher, wie ich das anstellen soll. So sieht ein Teil meiner default.vcl
aus:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
PS: Ich habe Nginx noch nicht installiert.
Antwort1
Hier möchten Sie ein zusätzliches Backend in Varnish einrichten und einige Anfragen dorthin weiterleiten.
Fügen Sie zunächst ein neues Backend für Nginx hinzu:
backend nginx {
.host = "127.0.0.1";
.port = "8081";
}
Dann können Sie einige Anfragen dorthin weiterleiten. Dies geschieht normalerweise in der vcl_recv
Subroutine. Wenn beispielsweise über die Domäne auf Sentora zugegriffen wird sentora.example.org
:
sub vcl_recv {
if (req.http.host ~ "(?i)^sentora.example.org$") {
# Route requests to sentora.example.org to the old Apache backend.
set req.backend = default;
} else {
# Everything else to nginx.
set req.backend = nginx;
}
}
SehenErweiterte Backend-Konfigurationfür weitere Beispiele. Es gibt auch viele Beispiele in derVarnish-KonfigurationsspracheDokumentation.