Cache Squid - Partie 2

Squid n'est pas seulement un service de proxy et de cache, il peut faire beaucoup plus: gérer acl (listes d'accès), filtrer le contenu, il peut même faire du filtrage ssl même en mode transparent (méthode proxy - sans avoir à configurer dans les paramètres du proxy depuis leurs navigateurs, c'est comme un homme au milieu, personne ne sait que c'est là). Je vois donc couramment comment tout le potentiel de cette application est gaspillé en ne sachant pas comment configurer chacune de ses parties.

Maintenant, la chose intéressante que fait squid est le cache (à mon avis). Vous me direz pourquoi le cache? La raison est simple, mieux gérer l'utilisation de votre vitesse et de votre bande passante est l'essentiel. Réfléchissez bien, 1000 personnes dans votre entreprise consultent toutes les 5 minutes, pages communes, Google, Hotmail, Gmail, etc ... pour que vous puissiez télécharger des images, des bannières, de la publicité, du contenu html encore et encore, tout cela est statique, non Ils changent si fréquemment, mieux vaut les avoir stockés dans votre réseau local et vous en fournissez une copie que vous considérez comme récente dans les configurations que vous avez envisagées.

Comment faire? Simple avec la phrase suivante:

refresh_pattern [-i] regex min percent max [options]

Comme je le dis toujours, ne croyez pas tout, alors je vous invite à lire à partir de la source officielle. Je vous recommande de lire le manuel de cette phrase ICI

Phrase rafraîchir_motif Ce sera toujours notre étiquette pour ajouter de nouveaux paramètres au cache.

Important, vos listes de cache doivent être séquentielles, car une fois qu'elles correspondent à la première qui correspond à l'objet, il ne continuera pas à lire vos autres règles

Les expressions régulières sont sensibles à la casse, donc flv n'est pas la même chose que FLV, mais vous pouvez éviter cela si vous le souhaitez en utilisant l'option -i . Alors ça ressemblerait à ça rafraîchir_motif -i

«Min»: est le temps (en minutes) pendant lequel un objet sera considéré comme "récent ou frais" et s'il n'a pas d'étiquette explicite "expiré". Par défaut, squid recommande qu'il soit 0, pour des raisons que certaines applications dynamiques peuvent se comporter étrangement, pur bla bla bla, vraiment cette valeur devrait être un nombre que vous considérez utile et efficace pour les éléments que vous souhaitez mettre en cache, Exemple: jpg, 1440 minutes (par jour) me semble bien, ce n'est pas comme si les images d'un article changent toutes les 5 minutes sur une page.

'Pour cent' C'est le pourcentage de l'âge d'un objet (depuis la dernière modification) qui sera considéré comme «récent ou frais». Laissez-moi vous expliquer, peut-être en effectuant un rechargement ou une actualisation constant pour voir les dernières modifications apportées à une page Web, squid pourrait considérer s'il a déjà, disons, 50% du temps terminé entre m. y max, retéléchargez cet objet sur Internet et donnez-vous une nouvelle copie.

«Max» est la limite supérieure ou égale à «Min» combien de temps un objet est considéré comme «récent ou frais», supposons qu'une image d'une page n'ait été consultée qu'une seule fois par un utilisateur, cet objet a déjà atteint son heure m., mais pas le max, puis quand il est interrogé à nouveau, une copie de cache sera livrée.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

Ces options ont été faites principalement pour ignorer les comportements préétablis dans les langages et les protocoles, afin de garantir une utilisation efficace du cache.

override-expire

Il applique le temps minimum d'un objet, même si le serveur a envoyé un délai d'expiration plus court (par exemple des choses comme l'en-tête ou Cache-Control: max-age). Si nous faisons cela, un "avertissement" apparaîtra disant des choses comme ceci "VIOLE le standard HTTP" mais ce ne sont que des avertissements que nous pouvons ignorer. Maintenant, si le temps qu'un serveur envoie est plus long, squid prendra le temps (expiration) du serveur

override-lastmod

Renforce la durée minimale d'un élément, même si cet élément a été récemment modifié.

reload-into-ims

La courte explication est que cela empêche que lorsque nous appuyons sur le bouton d'actualisation ou faisons une demande de non-cache, squid fournira le cache s'il n'a pas été "modifié depuis" et / ou s'il n'y a pas "d'en-tête" sur la page.

ignore-reload

Ignorer l'action des utilisateurs pour appuyer sur le bouton recharger ou actualiser la page

ignore-no-store

Ignorer toute règle dans les en-têtes pour ne pas mettre en cache, par exemple pour les vidéos

ignore-private

Ignorez toutes les règles dans les en-têtes de contenu privé qui ne doivent pas être mis en cache, par exemple: le contenu Facebook.

refresh-ims

Squid contacte le serveur pour s'assurer que l'objet est le plus récent. Si c'est le cas, il fournira le cache

store-stale

Squid enregistrera toutes ces réponses, même si elles n'ont pas de date d'expiration, c'est très peu pratique car elles ne peuvent généralement pas être réutilisées. Si vous décidez de l'activer, vous devez déclarer max-stale = NN

max-stale=NN

Si vous avez activé ce qui précède, vous devez déclarer une durée de vie maximale pour cette réponse ou ce facteur. Squid ne livre pas d'objets de ce style mais peut le valider avec la source

Voici un tableau du fonctionnement de l'état "FRESH" selon les valeurs dont nous avons discuté:

  • FRAIS si expire> maintenant, sinon STALE
  • STALE si âge> max
  • FRAIS si facteur lm <pour cent, sinon STALE
  • FRAIS si âge <min autre STALE

Voici un exemple de configuration pour une entreprise spécifique avec beaucoup d'espace disque, un bon équipement et une bonne bande passante

refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB

Maintenant, le cache n'est pas seulement sur le disque dur, nous pouvons également mettre en cache la mémoire RAM, cette valeur est pour chaque processus squid, vous devez donc la prendre en considération lorsque vous utilisez des redirecteurs comme calmarGuard

maximum_object_size_in_memory 1024 KB

La taille maximale de l'objet en mémoire que squid stockera dans la RAM. Vous pouvez également déclarer un minimum.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Comme vous pouvez le voir, l'une est la politique de remplacement du cache dans la mémoire RAM et une autre sur le disque dur. Il existe 2 politiques GDSF et LFUDA. Le premier cherche à améliorer le pourcentage de hits du cache, ayant de nombreux petits objets sous la main, le second cherche le contraire, il garde les objets en cache quelle que soit leur taille.

La question que j'imagine que vous me posez en ce moment est, quelle utilisation dois-je utiliser? Eh bien, si vous considérez que dans votre environnement, ils font beaucoup de requêtes et peu de téléchargements utilisent GDSF si au contraire ils font beaucoup de téléchargements et peu de requêtes LFUDA. Que si je recommande LFUDA quand vous allez faire, je ne sais pas, cache dans 1 To de disque, c'est plus efficace.

maximum_object_size 4 MB

La taille maximale qu'un objet peut avoir à stocker

cache_dir aufs /media/proxy249/cache 100 16 256

Où le cache sera stocké, attention ici, il est important que si vous utilisez ufs, aufs ou diskd, les 3 fonctionnent plus ou moins de la même manière, la différence est que aufs et diskd fonctionnent avec des processus séparés pour effectuer des opérations d'E / S sur le disque dur et éviter que les processus squid se bloquent pendant ces opérations, en plus diskd vous pouvez spécifier le nombre de threads que vous aurez pour cette tâche. Je recommande aufs si vous avez une bonne équipe.

Taille 100 (mégaoctets), vous pouvez mettre 100000 soit presque 100 Go selon vos disponibilités. 16 est le nombre de dossiers et 256 est le nombre de sous-dossiers. Vous pouvez jouer avec les deux valeurs en fonction de la vitesse de vos disques et de la quantité de ressources dont vous disposez.


cache_swap_low 90
cache_swap_high 95

Ces options sont les valeurs de remplacement d'objet, c'est la valeur minimale et maximale en filigrane selon squid, où ces nombres sont en pourcentage (%), et dans un très petit cache, 5% comme ça pour le moment serait disons 300 objets par seconde , mais dans de très grands caches, nous parlerions de milliers de Mo

Eh bien, là je vous laisse, ceci pour l'instant, commentez Et prenez également en considération ceux qui m'ont dit qu'ils ne pouvaient pas mettre en cache et filtrer les pages https (SSL) dans squid 3.5 ou supérieur, je vous les apporterai bientôt, restez à l'écoute de ce blog.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Ing. José Albert dit

    Excellent complément à la première partie!

    Il y a beaucoup de littérature sur Squid, mais arriver au point dans ses options les plus pratiques avec leurs explications respectives et les scénarios d'utilisation réelle possibles n'est pas toujours à portée de main!

    Comme toujours, j'attends avec impatience la troisième partie!

    1.    Brody Dalle dit

      Merci pour ton commentaire. Il est correct, une explication concise de tous les éléments pertinents et une configuration des meilleures pratiques. Cependant, je suis toujours attentif à vos commentaires et à vos propres expériences.

  2.   Arthur dit

    Bonjour, j'ai un problème avec les mises à jour Windows et l'antivirus. J'ai environ 120 pc dans mon établissement. Pouvez-vous me donner une idée de la manière d'améliorer cette situation. Merci pour votre aide et félicitations pour l'article.

    1.    Brody Dalle dit

      Bonjour, merci pour votre participation .. eh bien si je peux vous aider, mais expliquez bien quel est votre problème, vous ne pouvez pas télécharger les mises à jour? Avez-vous mis un proxy dans les options Internet et la même chose dans les options proxy de votre navigateur? Avez-vous vérifié les ports? Ou voulez-vous mettre en cache ces mises à jour?

      1.    Arthur dit

        Ce dont j'ai besoin, c'est que chaque fois qu'un ordinateur télécharge une mise à jour Windows ou antivirus, il reste dans le cache pendant une période d'environ un mois, de cette façon je voudrais économiser de la bande passante, car chaque matin à chaque fois tous les ordinateurs commencent à télécharger les mêmes mises à jour chacun et la connexion sature.

        Merci pour votre aide.

    2.    Mario dit

      Un serveur avec Squid fonctionne, car ce sont de simples téléchargements http non chiffrés. Les autres solutions de cache sont WSUS et Altiris, normales dans les entreprises.

      1.    Arthur dit

        Merci Mario, je vais garder cela à l'esprit.

    3.    Brody Dalle dit

      ok prêt, je comprends, vérifiez ce lien. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. pour mettre en cache l'antivirus, il faut savoir où les mises à jour sont téléchargées et sous quelle extension (exemple .exe) et les mettre en cache ...

  3.   Arthur dit

    Merci pour votre aide.

  4.   Erick dit

    Bonjour les amis, pourriez-vous me soutenir avec mon cas. Depuis que j'ai squid 2.7 .STABLE9 sur un debian 6, et j'ai tout configuré et lors du montage dans un environnement 10 pc, je reçois du courrier normal, le problème réside lorsque je le monte pour 90 pc, cela ne dure que quelques secondes de travail et à partir de là tout le monde est ils se retrouvent sans Internet. Pouvez-vous me soutenir?

  5.   JOSÉ RIVAS dit

    Excellente explication, basique mais très claire et précise. Personnellement, la meilleure explication que j'ai pu lire.
    J'ai une question, est-il possible de mettre en cache des applications Android telles que apk et xapk?
    Et quelle serait la bonne façon de configurer le cache dynamique quelle que soit l'origine des fichiers?
    J'utilise pfSense 2.4.5.