Sur un serveur Ubuntu 12.04, avec squid-deb-proxy
installé, les machines clientes du réseau contacteront correctement le serveur lors de l'installation des packages, mais squid
ne mettra jamais les packages en cache.
De /var/log/squid-deb-proxy/access.log
:
1368371692.721 485 192.168.1.220 TCP_MISS/200 20304 GET http://us.archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg1-3_all.deb - DIRECT/91.189.91.13 application/x-debian-package
1368371721.534 264 192.168.1.210 TCP_MISS/200 20304 GET http://us.archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg1-3_all.deb - DIRECT/91.189.91.13 application/x-debian-package
192.168.1.220 et .210 ont tous deux contacté le serveur (.210 is le serveur, mais a également squid-deb-proxy-client
installé), mais .210 a reçu TCP_MISS/200
, au lieu de recevoir le package mis en cache.
De /var/log/squid-deb-proxy/store.log
:
1368371692.721 RELEASE -1 FFFFFFFF 1255C76AE7E24BA02B4ABB6A3E4AB535 200 1368371672 1293023126 -1 application/x-debian-package 19904/19904 GET http://us.archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg1-3_all.deb
1368371721.534 RELEASE -1 FFFFFFFF 3534FA3574ED95020E8C960C75129676 200 1368371700 1293023126 -1 application/x-debian-package 19904/19904 GET http://us.archive.ubuntu.com/ubuntu/pool/universe/c/cowsay/cowsay_3.03+dfsg1-3_all.deb
Si je lis le store.log
right, squid
a mis en cache deux copies exactes du même fichier. (J'ai utilisé cowsay
pour tester; des fichiers beaucoup plus gros, comme linux-headers-*
également n'ont jamais été mis en cache.)
Les seuls changements par rapport à la valeur par défaut squid-deb-proxy.conf
devait activer les miroirs:
81,82c81,82
< http_access deny !to_ubuntu_mirrors
< #http_access allow !to_ubuntu_mirrors
---
> #http_access deny !to_ubuntu_mirrors
> http_access allow !to_ubuntu_mirrors
86,87c86,87
< cache deny !to_ubuntu_mirrors
< #cache allow !to_ubuntu_mirrors
---
> #cache deny !to_ubuntu_mirrors
> cache allow !to_ubuntu_mirrors
Enfin, les seules erreurs que j'ai vues dans les journaux spécifiques à squid
sont:
$ Sudo cat /var/log/upstart/squid-deb-proxy.log.1
2013/05/09 09:27:05| Warning: empty ACL: acl blockedpkgs urlpath_regex "/etc/squid-deb-proxy/autogenerated/pkg-blacklist-regexp.acl"
2013/05/09 09:27:05| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
2013/05/09 09:27:05| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
2013/05/09 09:27:05| WARNING: You should probably remove '::/0' from the ACL named 'all'
Étant donné que les clients contactent correctement le proxy du serveur, pourquoi squid
ne mettra-t-il pas en cache et ne renverra-t-il pas les packages?
Après avoir recommencé à zéro (purge, réinstallation), j'ai finalement découvert le problème.
Les modifications apportées à squid-deb-proxy.conf
(que je pensais miroirs activés) étaient les coupables.
Je ne comprends pas les commentaires du fichier, comme: "# uncomment the third and fouth line to permit any unlisted domain
". Il n'y a que deux lignes en dessous de ce commentaire, et décommenter les deux lignes semblerait (à quelqu'un qui n'est pas inversé dans la syntaxe de configuration de squid
) s'annuler mutuellement. Inverser les options (commenter sur celui initialement non commenté, et l'activation de celui initialement commenté) n'a évidemment pas fonctionné.
Autre point: les fichiers générés automatiquement sont sensibles aux fichiers de sauvegarde dans le *.d/
répertoires. J'ai remarqué ça /etc/squid-deb-proxy/autogenerated/mirror-dstdomain.acl
avait le contenu des deux mirror-dstdomain.acl.d/10-default
et mirror-dstdomain.acl.d/10-default~
dedans.