1 votes

Correction de l'erreur 403 avec le cache Varnish

J'utilise varnish (3.0.1) devant Apache et lors d'un pic de trafic il y a deux jours, tous les visiteurs du site ont commencé à recevoir une erreur 403. En cherchant sur Google, j'ai trouvé un fil de discussion qui dit que cela est dû au fait que l'IP de Varnish est transmise à Apache au lieu de celle de l'utilisateur qui fait la requête. (voir https://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-March/005730.html )

La suggestion était "Vous pourriez essayer de passer l'ip en tant que x-forwarded-for"... Je ne suis pas sûr de l'adresse IP à laquelle il est fait référence (celle du client ?), ni même de la manière dont je procéderais. Quelqu'un a-t-il déjà vu cela ou sait-il comment réaliser ce qui est suggéré ?

1voto

jdw Points 3715

Il est probable que votre backend ne renvoie 403 qu'une seule fois, mais que Varnish le met en cache pour les requêtes ultérieures. Oui, Varnish mettra en cache même les choses que vous ne voulez pas qu'il mette en cache, comme les pages d'erreur, si vous ne configurez pas le VCL pour faire autrement.

Je ne peux pas vraiment me prononcer sur la question de savoir si votre back-end limite le débit ou non, mais vous devriez probablement essayer de le découvrir d'abord avant de commencer à jouer avec les en-têtes de Varnish pour fournir une solution à un problème que vous n'avez pas encore compris.

Cependant, pour répondre à votre question, vous pouvez définir l'en-tête x-forwarded-for dans Varnish comme suit :

dans vlc_recv

req.http.x-forwarded-for = client.ip

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X