Fév 232012
 

Pour modifier la page d’erreur par défaut de varnish, ajouter ceci dans le vcl_error :

synthetic {"<votre code HTML>"};
return (deliver);

Pour inclure des images voir http://blog.jeremm.fr/?p=151

Si besoin vous pouvez appelez les variables varnish : req.xid, obj.status, obj.response dans votre page mais il faut ressortir du code hml:

html..."} + obj.status + {"html...

Vous pouvez faire plusieurs page d’erreur en fonction du code de retour :

if (obj.status == 500) {
        synthetic {" ... "};return (deliver);
    } else {
        synthetic {" ... "};return (deliver);
    }

Si le code est trop long, vous pouvez le mettre dans un fichier à part :

sub vcl_error {
        include "/etc/varnish/vcl_error.vcl";
}

avec les commandes synthetic et return(deliver) dans le fichier vcl_error.vcl

Fév 232012
 

Pour ajouter des images à votre page d’erreur varnish, soit vous faites appel à une image qui se trouve sur un autre serveur, soit vous l’encodez directement en base 64 dans la page. Varnish ne permet de renvoyer qu’un objet en erreur.
Pour cela il faut encoder votre image en base64 avec ce script:

<?php
$data = file_get_contents($argv[1]);
$data = base64_encode($data);
file_put_contents($argv[2], $data);
?>
php base64.php image_source.jpg image_cible.b64

Ensuite il suffit de l’intégrer à la placue du « ‹img src=http:// » habituel :

<img src="data:image/jpeg;base64,<le code de votre image_cible.b64>">