Ich habe drei Server im Backend mit einem Round-Robin-Director.
Ich möchte, dass Varnish einen X-Server-By-Header mit dem Namen oder der IP des Servers schreibt, von dem die Antwort abgerufen wurde. Wie geht das?
Antwort1
In Varnish 3.0.2 verwende ich:
sub vcl_fetch {
set beresp.http.X-Backend = beresp.backend.name;
}
Funktioniert perfekt.
Antwort2
sub vcl_fetch {
set obj.http.X-Backend = req.backend;
}
Getestet auf 2.0.6 in meinem (nicht Round Robin) Setup. Es sollte Ihnen etwas geben, womit Sie weitermachen können.
Antwort3
Sie können den Header auf Ihrem Webserver festlegen, z. B. x-host: server2, und Varnish gibt diesen dann als Teil der Antwort auf einen Cache-Treffer zurück.
Ich habe dies auf Apache zum Laufen gebracht und es funktioniert perfekt.
Antwort4
Das Folgende wurde nicht getestet, könnte Ihnen aber beim Einstieg helfen:
sub vcl_deliver {
set resp.http.X-Served-By = server.hostname;
deliver;
}