Forum général.général Squid, Reverse Proxy et authentification

Posté par  .
Étiquettes : aucune
0
28
juin
2007
Bonjour.
Je suis actuellement en train de mettre en place un Squid (en reverse proxy) pour alléger la charge de mon serveur web.

Voilà les lignes importantes de la conf :

http_port 80 accel defaultsite=87.98.222.47 vhost
cache_peer 87.98.222.47 parent 80 0 no-query originserver connect-timeout=5
cache_dir diskd /home/cache-squid 5000 16 256

# On ne cache pas si utilisateur identifiés
acl JV_AUTH_COOKIE req_header Cookie [-i] jvpc_loggued
cache deny JV_AUTH_COOKIE


A première vue ça marche, les utilisateurs identifiés ont bien les pages avec leur login, les non identifiés ont du cache.

Mais cette solution ne me satisfait pas, voilà pourquoi :
curl -I http://web/ -v
=> X-Cache: HIT from proxy (page en cache, normal)

curl -I http://web/ -v
=> X-Cache: HIT from proxy (idem)

curl -I http://web/ -b jvpc_loggued=1 -v
=> X-Cache: MISS proxy (normal, on va interroger le serveur web car utilisateur identifié)

curl -I http://web/ -v
=> X-Cache: MISS proxy (aie, on va de nouveau sur le serveur web)

curl -I http://web/ -v
=> X-Cache: HIT from proxy (page de nouveau en cache)

c'est le "cache deny JV_AUTH_COOKIE" qui pose soucis, car quand la règle JV_AUTH_COOKIE est vérifiée, il n'utilise pas le cache (ce que je veux), mais en plus supprime le fichier du cache (ce que je ne veux pas, le but est que les fichiers des non identifiés soient toujours en cache).

En pratique, dès qu'un utilisateur identifié (2% des visiteurs) charge une page, celle ci est enlevée du cache, puis remise dès qu'un anonyme la recharge, ce qui est assez gênant par exemple pour la homepage.

Le site a un fort traffic, c'est pourquoi j'essaie d'optimiser ça un maximum. Après une journée de google, je n'ai pas réussi à trouver comment faire ça, ni comment wikipedia le fait (ils utilisent le même principe)

Si vous avez des liens/idées/réponses, merci d'avance :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.