Squid cache - parte 2

Squid non è solo un servizio proxy e cache, può fare molto di più: gestire acl (elenchi di accesso), filtrare i contenuti, può persino eseguire il filtraggio ssl anche in modalità trasparente (metodo proxy - senza dover configurare nelle impostazioni proxy dal tuo browser, è come se fosse un uomo al centro, nessuno sa che c'è). Quindi vedo comunemente come il pieno potenziale di questa applicazione viene sprecato non sapendo come configurare ciascuna delle sue parti.

Ora la cosa interessante che fa squid è la cache (secondo me). Mi dirai perché la cache? Il motivo è semplice, gestisci meglio l'uso della tua velocità e larghezza di banda, è la cosa principale. Pensa attentamente, 1000 persone nella tua azienda si consultano ogni 5 minuti, pagine comuni, Google, Hotmail, Gmail, ecc ... in modo da scaricare immagini, banner, pubblicità, contenuti html più e più volte, tutte queste sono cose statiche, no cambiano così frequentemente, meglio averli memorizzati nella tua rete locale e consegnare una copia che consideri recente all'interno delle configurazioni che hai considerato.

Come si fa Semplice con la seguente frase:

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

Come dico sempre, non credere a tutto, quindi ti invito a leggere dalla fonte ufficiale. Ti consiglio di leggere il manuale di questa frase QUI

Frase modello_aggiornamento Sarà sempre la nostra etichetta ad aggiungere nuovi parametri alla cache.

Importante, gli elenchi della cache devono essere sequenziali, perché una volta che corrisponde al primo che corrisponde all'oggetto, non continuerà a leggere le altre regole.

Le espressioni regolari fanno distinzione tra maiuscole e minuscole, quindi flv non è la stessa cosa di FLV, ma puoi evitarlo se lo desideri utilizzando l'opzione -i . Allora sarebbe simile a questo modello_aggiornamento -i

'Min': è il tempo (minuti) in cui un oggetto sarà considerato "recente o fresco" e se non ha un'etichetta esplicita di "scaduto". Per impostazione predefinita squid consiglia che sia 0, per motivi che alcune applicazioni dinamiche possono comportarsi in modo strano, puro blah blah blah, in realtà questo valore dovrebbe essere un numero che consideri utile ed efficace per gli elementi che vuoi memorizzare nella cache, esempio: jpg, 1440 minuti (al giorno) mi sembrano a posto, non è come se le immagini di un post cambiassero ogni 5 minuti su una pagina.

'Per cento' È la percentuale dell'età di un oggetto (dall'ultima modifica) che sarà considerata «recente o fresca». Mi spiego meglio, magari facendo una ricarica o un aggiornamento costante per vedere le ultime modifiche che sono state apportate a una pagina web, squid potrebbe considerare se ha già, diciamo, il 50% del tempo verbale y max, scarica nuovamente quell'oggetto da Internet e ti do una nuova copia.

"Max" è il limite superiore o uguale a 'Min' per quanto tempo un oggetto è considerato «recente o fresco», supponiamo che un'immagine di qualche pagina sia stata consultata una sola volta da un utente, quell'oggetto ha già raggiunto il suo tempo verbale, ma non il max, quindi quando viene nuovamente interrogato, verrà consegnata una copia cache.

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

Queste opzioni sono state realizzate principalmente per ignorare comportamenti prestabiliti in linguaggi e protocolli, al fine di garantire un utilizzo efficace della cache.

override-expire

Impone il tempo minimo di un oggetto, anche se il server ha inviato un tempo di scadenza più breve (cose come header o Cache-Control: max-age). Se lo facciamo, apparirà un "avviso" che dice cose come questa "VIOLA lo standard HTTP", ma si tratta solo di avvisi che possiamo ignorare. Ora, se il tempo che un server invia è più lungo, squid prenderà il tempo (scadenza) del server

override-lastmod

Rafforza il tempo minimo di un elemento, anche se l'elemento è stato modificato di recente.

reload-into-ims

La breve spiegazione è che impedisce che quando si preme il pulsante di aggiornamento o si effettua una richiesta senza cache, squid fornirà la cache se non è stata "modificata da" e / o se non ci sono "intestazioni" nella pagina.

ignore-reload

Ignora l'azione degli utenti per premere il pulsante di ricarica o di aggiornamento della pagina

ignore-no-store

Ignora qualsiasi regola nelle intestazioni da non memorizzare nella cache, ad esempio dei video

ignore-private

Ignora le regole nelle intestazioni dei contenuti privati ​​che non devono essere memorizzate nella cache, ad esempio: contenuto di Facebook.

refresh-ims

Squid contatta il server, per garantire se l'oggetto è l'ultimo. Se lo è, fornirà la cache

store-stale

Squid salverà tutte quelle risposte, anche se non hanno una data di scadenza, questo è molto poco pratico in quanto di solito non possono essere riutilizzate. Se decidi di abilitarlo devi dichiarare max-stale = NN

max-stale=NN

Se hai abilitato quanto sopra, devi dichiarare una durata massima per quella risposta o fattore. Squid non fornisce oggetti di questo stile ma può convalidarlo con l'origine

Ecco una tabella di come funziona lo stato "FRESH" in base ai valori che abbiamo discusso:

  • FRESCO se scade> adesso, altrimenti STALO
  • STALE se età> max
  • FRESCO se fattore lm <percentuale, altrimenti STALE
  • FRESCO se età <min altrimenti STALO

Di seguito è riportato un esempio di configurazione per un'azienda specifica con molto spazio su disco, buone apparecchiature e buona larghezza di banda

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

Ora la cache non è solo sul disco rigido, possiamo anche memorizzare nella cache la memoria ram, questo valore è per ogni processo squid, quindi devi prenderlo in considerazione quando usi redirector come squid Guard

maximum_object_size_in_memory 1024 KB

La dimensione massima dell'oggetto in memoria che squid salverà nella RAM. Puoi anche dichiarare un minimo.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Come puoi vedere, una è la politica per la sostituzione della cache nella memoria RAM e un'altra nell'hard disk. Ci sono 2 politiche GDSF e LFUDA. Il primo cerca di migliorare la percentuale di accessi alla cache, avendo molti piccoli oggetti a portata di mano, il secondo cerca il contrario, mantiene gli oggetti nella cache indipendentemente dalla loro dimensione.

La domanda che immagino tu mi stia ponendo in questo momento è: che uso ne uso? Bene, se consideri che nel tuo ambiente fanno molte query e pochi download usano GDSF se al contrario fanno molti download e poche query LFUDA. Che se raccomando LFUDA quando lo farai, non so, cache in 1 TB di disco, è più efficiente.

maximum_object_size 4 MB

La dimensione massima che un oggetto può avere per essere memorizzato

cache_dir aufs /media/proxy249/cache 100 16 256

Dove verrà memorizzata la cache, attenzione qui, l'importante è che se usi ufs, aufs o diskd, tutti e 3 funzionano più o meno allo stesso modo, la differenza è che aufs e diskd funzionano con processi separati per eseguire le operazioni di I / O sul disco rigido e evita che i processi squid si blocchino durante queste operazioni, inoltre diskd puoi specificare il numero di thread che avrai per questa attività. Consiglio aufs se hai una buona squadra.

Dimensione 100 (megabyte), puoi mettere 100000 è quasi 100 GB dipende dalla tua disponibilità. 16 è il numero di cartelle e 256 è il numero di sottocartelle. Puoi giocare con entrambi i valori a seconda della velocità dei tuoi dischi e di quante risorse hai.


cache_swap_low 90
cache_swap_high 95

Queste opzioni sono i valori di sostituzione dell'oggetto, è il valore minimo e massimo come filigrana secondo squid, dove questi numeri sono in percentuale (%), e in una cache molto piccola, il 5% come questo in questo momento sarebbe diciamo 300 oggetti al secondo , ma in cache molto grandi si parlerebbe di migliaia di MB

Bene, non vi lascio, questo per ora, commento e prendi in considerazione anche chi mi ha detto che non poteva memorizzare nella cache e filtrare le pagine https (SSL) in squid 3.5 o superiore, te le porterò presto, resta sintonizzato su questo blog.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Ing. José Albert suddetto

    Ottimo complemento alla prima parte!

    C'è molta letteratura su Squid a riguardo, ma arrivare al punto nelle sue opzioni più pratiche con i rispettivi chiarimenti e possibili scenari di utilizzo reale non è sempre a portata di mano!

    Come sempre, non vedo l'ora che arrivi la terza parte!

    1.    brodidalle suddetto

      Grazie per il tuo commento. È corretto, una spiegazione concisa di tutti gli elementi rilevanti e una configurazione delle migliori pratiche. Tuttavia, sono sempre attento ai tuoi commenti e alle tue esperienze.

  2.   Artus suddetto

    Ciao, ho un problema con gli aggiornamenti di Windows e l'antivirus. Ho circa 120 PC nel mio istituto. Potresti darmi un'idea di come migliorare questa situazione. Grazie per il tuo aiuto e congratulazioni per l'articolo.

    1.    brodidalle suddetto

      Ciao, grazie per aver partecipato .. beh se posso aiutarti, ma spiegami bene qual è il tuo problema, non riesci a scaricare gli aggiornamenti? Hai inserito il proxy nelle opzioni Internet e lo stesso nelle opzioni proxy del tuo browser? Hai controllato le porte? O vuoi memorizzare nella cache quegli aggiornamenti?

      1.    Artus suddetto

        Quello di cui ho bisogno è che ogni volta che un computer scarica un aggiornamento di Windows o antivirus, rimanga nella cache per un periodo di circa un mese, in questo modo vorrei risparmiare banda, poiché ogni mattina ogni volta tutti i computer iniziano a scaricare gli stessi aggiornamenti ciascuno e la connessione si satura.

        Grazie per il vostro aiuto.

    2.    Mario suddetto

      Un server con Squid funziona, poiché si tratta di semplici download http non crittografati. Altre soluzioni per la cache sono WSUS e Altiris, normali nelle aziende.

      1.    Artus suddetto

        Grazie Mario lo terrò a mente.

    3.    brodidalle suddetto

      ok pronto, ho capito, controlla questo link. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. per memorizzare nella cache l'antivirus, devi sapere da dove vengono scaricati gli aggiornamenti e sotto quale estensione (esempio .exe) e metterlo nella cache ...

  3.   Artus suddetto

    Grazie per il vostro aiuto.

  4.   Erick suddetto

    Buongiorno amici, potreste sostenermi con il mio caso. Dato che ho squid 2.7 .STABLE9 su una Debian 6 e ho tutto configurato e quando lo monto in un ambiente 10 pc, ricevo la posta normale, il problema sta quando lo monto per 90 pc, dura solo pochi secondi funzionando e da lì tutti sono vengono lasciati senza Internet. Potresti sostenermi?

  5.   GIUSEPPE RIVAS suddetto

    Ottima spiegazione, essenziale ma molto chiara e precisa. Personalmente la migliore spiegazione che ho potuto leggere.
    Ho una domanda, è possibile memorizzare nella cache applicazioni Android come apk e xapk?
    E quale sarebbe il modo corretto per configurare la cache dinamica qualunque sia l'origine dei file?
    Io uso pfSense 2.4.5.