web-dev-qa-db-fra.com

squid-deb-proxy n'a pas réussi à mettre en cache les packages

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?

2
tephyr

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.

1
tephyr