Squid migration from 3.1 to 3.2

Squid 3.2 est depuis peu devenu la branche stable de Squid. FreeBSD propose désormais d’utiliser cette version dans les ports à la place de Squid 3.1.20, Debian devrait la faire remonter d’ici quelques semaines dans unstable puis testing et dans le prochain Debian 8.0 d’ici 2 ans.

Ici nous utilisons OpenBSD. Squid est donc fraîchement compilé depuis les sources (en 3.2.5 au moment de la rédaction de l’article). Voici nos options de compilation:

./configure '--enable-pf-transparent' '--enable-follow-x-forwarded-for' '--with-large-files' '--enable-ssl' '--disable-ipv6' '--enable-esi' '--enable-kill-parent-hack' '--disable-snmp' --with-pthreads '--enable-external-acl-helpers=ip_user unix_group wbinfo_group' --enable-auth='ntlm'

Nettoyage de la configuration

Dans un premier temps, il faut nettoyer les définitions des ACL. En effet plusieurs d’entre-elles sont désormais intégrée directement dans le binaire. Supprimez les ACLs suivantes:

  • manager
  • localhost
  • to_localhost

Si vous venez d’une version 2.7 il faut également supprimer

  • all

Configuration de squidGuard dans squid

Quelques options ont changé, notamment pour le nombre de fils squidGuard, qui ne sont plus gérés de manière statique mais dynamique. Editez la lignes url_rewrite_children de la manière suivante (à adapter):

url_rewrite_children 128 startup=16 idle=10 concurrency=0

Le premier nombre est toujours le nombre maximal. startup définit le nombre de fils au démarrage, idle le nombre de fils en spare et concurrency le nombre de requêtes traitées en parallèle via des threads (avec squidGuard il faut mettre 0)

C’est tout !

Si vous n’arrivez pas à démarrer, il se peut que ce soit d’autres options que je n’ai pas activées, dans ce cas tapez:

<path>/squid -k <path>/squid.conf -N -d 10

Cela permettra de charger le service en foreground et de voir ce qui bloque. N’hésitez pas à ajouter des commentaires qui permettent de compléter l’article !