2015-12-30 3 views
2

Utilisation de Varnish 3.0.7. Afin de transmettre toutes les connexions non-SSL J'ai ajouté le sous-programme suivant à mon VCL:Varnish 3: "Nom de l'action de retour attendu" lors de l'utilisation de "synth"

sub vcl_synth { 
    if (resp.status == 750) { 
     set resp.status = 301; 
     set resp.http.Location = req.http.x-redir; 
     return(deliver); 
    } 
} 

Et puis dans vcl_recv J'ai ajouté:

if ((req.http.host ~ "^(?i)mydomain(?i)") && req.http.X-Forwarded-Proto !~ "(?i)https") { 
    set req.http.x-redir = "https://" + req.http.host + req.url; 
    return(synth(750, "")); 
} 

Mais je reçois ce qui suit erreur:

Message from VCC-compiler: 
Expected return action name. 
('input' Line 225 Pos 16) 
     return(synth(750, "")); 
---------------#####------------ 

Est-ce que quelqu'un sait pourquoi cela se produit? Je suis désemparé après plusieurs heures de débogage ...

Merci beaucoup!

Répondre

4

vcl_synth et return(synth(750, "")) n'existent pas dans Varnish Cache 3.x. C'est une syntaxe valide uniquement dans 4.x. Dans 3.x vcl_synth devrait être remplacé par vcl_error et return(synth(750, "")) par error 750.