TD proxy/cache : installation de squid
Sources documentaires
Compilation et installation de squid
-
Créez un répertoire pour l'installation de squid, par exemple
$HOME/cours/internet/squid. Pendant tout le reste de cet énoncé,
on référencera ce répertoire sous le nom SQUID_HOME.
-
Récupérez l'archive de squid 1.1.20 : squid-1_1_20-src_tar.gz
et détarez-là dans $SQUID_HOME/src (rappel : pour
détarer une archive tar gzippée : tar xvfz squid-1_1_20-src_tar.gz)
-
Créez $SQUID_HOME/squid-installation , allez dans le répertoire
source ($SQUID_HOME/src/squid-1.1.20) et lancez la commande suivante
:
./configure --prefix $SQUID_HOME/squid-installation
Le script configure examine le système et construit
les Makefiles ad hoc pour compiler squid. L'option standard de
configure --prefix permet d'indiquer le répertoire
ou sera installé le logiciel (par défaut : /usr/local/squid).
Tapez ensuite :
make, puis
make install
Si tout s'est bien passé vous devriez avoir les réperoires
suivants :
$SQUID_HOME/squid-installation
/bin,
/etc,
/logs
Le sous-répertoire bin contient l'exécutable squid
ainsi que d'autres programmes comme ftpget etc..
Les objets cachés (un objet peut être assimilé à
une image, une page web, un fichier...) iront dans le sous-répertoire
cache qui sera créé plus tard. Le fichier de configuration
de squid, squid.conf se trouve dans le sous-repertoire etc
et les logs iront dans le sous-répertorie logs.
Configuration minimale et lancement de squid
Dans $SQUID_HOME/squid-installation/etc/squid.conf, vous avez
le fichier de configuration par défaut. Il faut impérativement
l'éditer pour indiquer certaines informations obligatoires. Lisez
donc le fichier $SQUID_HOME/src/squid-1.1.20/QUICKSTART pour plus
d'informations à ce sujet.
Fichier
QUICKSTART
-
Configurez au moins la taille du cache !!!!! Mettez 10Mo si vous
le pouvez (merci les ratios) !
-
Quelques autres valeurs que vous pouvez modifier :
#Taille du cache disque, 10Mo à cause de vos quotas
cache_swap 10
#Contrôle des accés : un groupe qui dit "tout le monde
peut utiliser le cache"
acl all src 0.0.0.0/0.0.0.0
#tous les sites et clients peuvent nous prendre comme proxy http
http_access allow all
#sites de test pour voir si on est conenctés
dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu
#user nobody, pas de groupe
cache_effective_user nobody nogroup
Ce fichier autorise n'importe qui à utiliser votre cache (aussi
bien les gens de l'ESSI que ceux de l'extérieur), suppose que vous
disposez de 10 Mb (la valeur par défaut normale est de 100Mo) de
disque alloués au cache, et que vous avez au moins 8Mo de RAM pour
le cache mémoire. Le requêtes des clients web seront sur le
port par défaut (3128 TCP) et les requêtes inter caches sur
le port 3130 (UDP).
Créez le directory $SQUID_HOME/squid_installation/cache en lançant
la commande :
$SQUID_HOME/squid-installation/bin/squid -z
-
Lancez maintenant squid :
$SQUID_HOME/squid-installation/bin/squid &
Je vous conseille, comme lorsque nous avions installé le serveur
Apache, d'avoir en permanence un xterm qui trace les erreurs avec la commande
tail -f $SQUID_HOME/squid-installation/logs/cache.log
S'il n'y a pas de message du genre "fatal error" tout va bien, votre
serveur cache tourne !
REMARQUE : je vous conseille grandement d'installer dans $SQUID_HOME/squid-installation/bin
trois commandes stop_squid, restart_squid et start_squid,
comme nous l'avions fait pour le serveur Apache.
Testons notre cache !
-
Configurez votre navigateur pour utiliser votre proxy tout neuf
! Allez dans le menu de configuration des proxies et mettez votre-machine,
port 3128, comme proxy pour les protocoles supportés par squid
par défaut : http, ftp, gopher.
Remarque concernant UNIX : il n'y a pas que Netscape qui peut
utiliser les proxies ! Si vous voulez que d'autres outils www ou ftp en
profitent, comme wget par exemple, il suffit de positionner les variables
suivantes:
% export http_proxy=http://mycache.essi.fr:3128/
% export gopher_proxy=http://mycache.essi.fr:3128/
% export ftp_proxy=http://mycache.essi.fr:3128/
-
Accédez maintenant à des pages web, et regardez le xterm
qui trace le fichier $SQUID_HOME/squid-installation/logs/access.log,il
devrait se passer des choses !
regardez donc ce qu'il se passe lorsque vous chargez une page web quelconque,
des lignes contenant la chaîne de caractères TCP_MISS devraient
apparaître. Si vous faites un "reload" dans votre navigateur, des
lignes contenant TCP_CLIENT_REFRESH doivent apparaître... Les données
sont bien dans le cache !
Passons aux choses sérieuses !
Installation de l'interface CGI pour administrer le cache.
-
Copiez le fichier $SQUID_HOME/squid-installation/bin/cachemgr.cgi dans
le répertoire $HOME/www/local/cgi-bin, l'URL du cache sera donc
http://www-local.essi.fr/~votre_login/cgi-bin/cachemgr.cgi.
-
Par défaut, seul le serveur web tournant sur la machine locale (localhost)
peut administrer votre cache à distance. Modifiez le fichier de
configuration pour pouvoir y accéder depuis le serveur web local
de l'ESSI (IP = 157.169.25.201). Remarque, vous pouvez aussi
installer cachemgr.cgi dans le répertoire cgi-bin de votre propre
serveur Apache.
Restrictions d'accès
-
Maintenant, seuls les clients tournant sur les machines d'une rangée
peuvent utiliser les caches de cette rangée.
-
Configurez le cache pour qu'il n'accepte que les requêtes http, que
les requêtes ftp
Gestion des hiérarchies
-
Nous vous proposons de créer une petite hiérarchie de caches
dans la salle : les machines d'une même rangée feront tourner
des caches voisins, et chaque cache de la rangée aura comme parent
le cache tournant sur la machine juste devant elle.
-
Dans un second temps, les caches d'une même rangée seront
exclusifs (ils ne doivent pas se mirrorer les uns les autres). Chaque cache
de la rangée s'occupera de domaines précis. Le cache le plus
à gauche se spécialisera dans les domaines .com, celui du
milieu dans les .fr, celui de droite dans les autres.