2016-09-11 2 views
0

Avant Vernis 4, On pourrait appeler un redémarrage de vcl_fetch pour démarrer un autre flux atteignant vcl_recv.Varnish 4.1 - Appelez un redémarrage en fonction de la réponse backend

Dans la version 4, la logique a été séparée en client et backend, j'ai besoin d'être en mesure d'appeler un redémarrage en fonction de la réponse backend. Une direction que je pensais être possible utilise vcl_synth comme middleware entre le backend et le client mais le backend ne peut pas envoyer un code d'erreur spécifique ou une erreur standard 503 seulement.

Des idées?

Répondre

0

Vous ne pouvez pas redémarrer une demande pendant vcl_backend_* dans Varnish 4.x.

Vous pouvez return (abandon) pendant vcl_backend_* puis redémarrez la demande en vcl_synth si resp.status == 503, mais vous ne pouvez pas transporter des informations de vcl_backend_* à vcl_synth afin de mettre en œuvre une condition plus intelligente. Vous pouvez également exécuter le redémarrage pendant vcl_deliver en fonction de ce qui a été renvoyé par le serveur principal.