Forum Linux.debian/ubuntu [Squid] Configuration basique d'un proxy ne cache pas

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
26
juin
2013

Bonjour à toutes et à tous.

Je suis actuellement en stage et je suis en train d'essayer de configurer un proxy simple avec SQUID3 (version 3.14) pour que ce dernier puisse cacher du contenu et utiliser ce cache pour servir les futurs clients.
Je travaille sur une machine virtuelle (Ubuntu 11.10) reliée en accès par pont à mon réseau local.
J'ai posté sur ma machine physique une video .mov (20 Mo) et j'aimerais que ma machine virtuelle cache cette video pour les prochains accès.

Cependant, je n'ai jamais de jolis TCP_HIT ou TCP_MEM_HIT. Mais quelques TCP_REFRESH_UNMODIFIED (qui fait ensuite un acces direct au serveur d'origine) et plein de TCP_MISS.

1372238339.252      1 127.0.0.1 TCP_MISS/304 311 GET http://172.18.1.36/lala.mov - DIRECT/172.18.1.36 -
1372238340.029      1 127.0.0.1 TCP_MISS/304 311 GET http://172.18.1.36/lala.mov - DIRECT/172.18.1.36 -
1372238344.113      0 127.0.0.1 TCP_MISS/304 311 GET http://172.18.1.36/lala.mov - DIRECT/172.18.1.36 -
1372238351.067      1 127.0.0.1 TCP_MISS/304 311 GET http://172.18.1.36/lala.mov - DIRECT/172.18.1.36 -

Et je ne comprend pas pourquoi parfois j'obtiens des TCP_REFRESH_UNMODIFIED et d'autre fois des TCP_MISS. J'ai l'impression que mon SQUID ne cache rien du tout.
Est ce que vous auriez des idées sur ce que je configure mal ici ? Je suis vraiment bloqué et je ne sais plus quoi tester.

Merci d'avance pour vos réponses.

Voici mon fichier de configuration :

# ACCESS CONTROLS
# -----------------------------------------------------------------------------
#Recommended minimum configuration:
#acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443      # https
acl SSL_ports port 563      # snews
acl SSL_ports port 873      # rsync
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http
acl Safe_ports port 631     # cups
acl Safe_ports port 873     # rsync
acl Safe_ports port 901     # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager

# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge

# Deny requests to unknown ports
http_access deny !Safe_ports

# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports

http_access allow localnet
http_access allow localhost
http_access allow Safe_ports
http_access deny all

#Allow ICP queries from local networks only
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?

# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------
 cache_mem 32 MB
 maximum_object_size_in_memory 16 KB
 memory_replacement_policy lru

# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_replacement_policy lru
cache_dir ufs /var/spool/squid3 100 16 256
minimum_object_size 0 KB
maximum_object_size 40480 KB

# LOGFILE OPTIONS
# -----------------------------------------------------------------------------
access_log /var/log/squid3/access.log squid
cache_store_log /var/log/squid3/store.log

# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------
cache allow all
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Packages(.gz)*)$   0   20% 2880

# ADVANCED NETWORKING OPTIONS
# -----------------------------------------------------------------------------
hosts_file /etc/hosts
coredump_dir /var/spool/squid
  • # Solution?

    Posté par  (site web personnel) . Évalué à 1.

    Je ne suis pas un expert en Squid (en fait je ne l'ai jamais installé), mais ton problème ne viendrait-il pas de:

    acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
    

    et du fait que tu es sur le sous-réseau 172.18.0.0, ce qui désactiverait la mise en cache ?

    • [^] # Re: Solution?

      Posté par  . Évalué à 1.

      172.18.0.0 se trouve 172.16.0.0/12.

    • [^] # Re: Solution?

      Posté par  . Évalué à 0.

      Nope, ça ne vient pas de là, j'ai testé quand même dans le doute,
      Etant donné que 172.18.1.0/24 est un sous réseau de 172.16.0.0/16, mon sous réseau est inclus dans l'acl.

      • [^] # Re: Solution?

        Posté par  (site web personnel) . Évalué à 2.

         maximum_object_size_in_memory 16 KB
        

        peut être ?

        Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités

        • [^] # Re: Solution?

          Posté par  . Évalué à 0.

          J'ai changé ce paramètre en le mettant à 40000 KB, mais pas plus de résultats.
          Cette directive correspond au à la taille max des fichiers cachés dans la mémoire vive allouée précédemment.

      • [^] # Re: Solution?

        Posté par  (site web personnel) . Évalué à 1.

        Je parlais justement de ça (je connais mes sous-réseau quand même :-P)

        Est-ce que Squid met en cache si la destination est dans localnet?

        Après, comme je l'ai dit, je ne connais pas Squid donc c'est probablement une fausse piste…

  • # Squid ou Polipo

    Posté par  (site web personnel) . Évalué à 0.

    maximum_object_size_in_memory 16 KB

    Ce qui dépasse 16KB n'est stocké QUE sur le disque.
    Si c'est plus petit, ça tiendra en ram, sans solliciter le disque dur, donc ça sera plus rapide.

    Curieux que ton document de 20Mo ne soit pas dans le cache (Squid a des log, il t'indiquent si ce qui se passe).

    Je pense que le problème est lié à la navigation locale, ou bien parce que tu utilises une VM, et dans ce cas, le réseau ne passe pas forcément par des adresses IP.

    Tu peux éventuellement essayer Polipo, qui est très simple, et fonctionne très bien. Il y a seulement quelques lignes à décommenter.

    Bonne Soirée
    G

    Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

    • [^] # Re: Squid ou Polipo

      Posté par  . Évalué à 2.

      Je pense que le problème est lié à la navigation locale, ou bien parce que tu utilises une VM, et dans ce cas, le réseau ne passe pas forcément par des adresses IP.

      Il passe par quoi alors ? pigeons voyageurs ?

      • [^] # Re: Squid ou Polipo

        Posté par  (site web personnel) . Évalué à 2.

        Par l'adresse MAC.

        En fait, son problème me fait penser à ce qui se passe au niveau réseau entre différentes machines virtuelles XEN. Il y a bien des adresses IP, mais en fait ces adresses ne sont pas utilisées par le noyau.

        Polipo est bien plus simple. Si cela fonctionne avec Polipo, c'est qu'il a une erreur dans la config de son Squid.

        Si avec Polipo ça ne fonctionne pas, ça ne peut pas fonctionner non plus avec Squid.

        Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

Suivre le flux des commentaires

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