2016-09-28 17 views
0

Wie übergebe ich Variablen über Subroutinen?Übergeben von Variablen in Varnish pro Anfrage

Ich habe folgende default.vcl:

vcl 4.0; 

sub vcl_recv { 
    set req.http.x-tracking-first-request = "true"; 
} 


sub vcl_deliver { 

    if (resp.http.x-tracking-first-request) { 
     # do something 
    } 
} 

Zur Zeit habe ich die Parameter in meinem Backend zu behandeln, das heißt so etwas wie response.add_header("x-tracking-first-request", response.get_header("x-tracking-first-request")). Dies bedeutet, dass jeder Client diese "Reflektions" -Logik implementieren muss.

Warum? Uppon erste Anfrage Ich möchte eine UUID generieren, um später verschiedene Benutzer zu identifizieren. Daher muss ich die UUID über alle Anfrage/Antwort-Zyklen irgendwie speichern.

Antwort

1

Sie müssen einfach nur die req Objekt während vcl_deliver verwenden:

vcl 4.0; 

sub vcl_recv { 
    set req.http.x-tracking-first-request = "true"; 
} 

sub vcl_deliver { 
    if (req.http.x-tracking-first-request) { 
     # do something 
    } 
} 
+0

Vielen Dank! Ich hatte einen Tippfehler in meinen Header-Variablen und daher schien es, als ob ich nicht auf das req-Objekt zugreifen konnte. – anopheles

Verwandte Themen