squid refresh_pattern

refresh_pattern je ključna komponenta u konfiguraciji Squid proxy servera koja se koristi za upravljanje vremenom zadržavanja (cache) web resursa i načinom na koji se osvježavaju, tj. obnavljaju. Pomoću refresh_pattern možete kontrolisati koliko dugo će Squid čuvati kopije web stranica i kako će ih ažurirati ili osvježiti iz izvornog izvora (web servera).


Sintaksa refresh_pattern je obično sledeća:

refresh_pattern REGEX min percent max [options]

Evo šta ovi parametri znače:


REGEX: Ovo je regularni izraz (regular expression) koji se koristi za određivanje koje URL-ove ili resurse treba tretirati određenim vremenom osvježavanja. Na primjer, možete koristiti \.jpg$ kako biste odredili sve slike u JPG formatu.

min: Minimalno vreme (u minutima) koje Squid čuva kopiju resursa u kešu pre nego što se osvježi.

percent: Ovaj parametar određuje koliko će vremena od minimalnog vremena osvježenja (min) biti dodato kako bi se dobilo vreme osvježenja. Na primer, ako postavite percent na 50, to znači da će se vreme osvježenja računati kao 150% od minimalnog vremena.

max: Maksimalno vreme (u minutima) koje Squid može čuvati kopiju resursa u kešu pre nego što se mora osvježiti.

options (opcionalno): Dodatne opcije koje možete koristiti da biste prilagodili ponašanje refresh_pattern. Na primer, možete koristiti "ignore-reload" kako biste ignorisali zahtjeve za osvježavanje generisane od strane korisnika koji pritisnu "Refresh" u svom web pregledaču.


Primer upotrebe refresh_pattern može izgledati ovako:

refresh_pattern ^ftp:           1440    20%     10080

refresh_pattern -i \.(gif|jpg|png)$  10080  90%  43200 ignore-no-store override-expire override-lastmod ignore-reload

Ovaj primer kaže Squid-u da čuva FTP resurse 1440 minuta pre nego što razmotri osvježenje, a web slike u formatima GIF, JPG i PNG 10080 minuta pre nego što se osvježe. Takođe su navedene neke dodatne opcije za obradu ovih resursa.

Kako se osvežavaju resursi?

Squid proxy server osvežava (refresh) svoj keš tako što proverava vreme zadržavanja (refresh_pattern) za svaki keširani resurs i odlučuje kada treba da ažurira ili ponovo preuzme taj resurs sa izvornog servera. Proces osvežavanja u Squid-u ima sledeće karakteristike:


Provera vremena zadržavanja: Squid redovno proverava vreme zadržavanja koje je konfigurisano putem refresh_pattern za svaki keširani resurs. Ovo se radi kako bi se utvrdilo kada je resurs treba ažurirati.


Minimalno i maksimalno vreme zadržavanja: Squid koristi minimalno i maksimalno vreme zadržavanja (navedeno u refresh_pattern) kao smernice za odlučivanje kada ažurirati resurs. Minimalno vreme predstavlja minimalno vreme koje resurs mora biti u kešu pre nego što se osveži, dok maksimalno vreme ograničava koliko dugo resurs može ostati u kešu.


Ažuriranje resursa: Kada prođe minimalno vreme zadržavanja, Squid će proveriti da li je resurs istekao ili je bliži isteku od maksimalnog vremena zadržavanja. Ako je resurs istekao ili se približava isteku, Squid će ga smatrati "zastarelim" i zatražiti novo ažuriranje tog resursa sa izvornog servera.


Zahtev serveru: Squid šalje HTTP zahtev izvornom serveru kako bi osvežio zastareli resurs. Ovaj zahtev može sadržavati uslove kao što su "If-Modified-Since" kako bi se izbeglo nepotrebno ažuriranje ako se resurs nije promenio od poslednjeg keširanja.


Odgovor od izvornog servera: Izvorni server vraća odgovor Squid-u, koji sadrži ažurirani resurs ili informaciju da resurs nije promenjen (HTTP statusni kod 304 - Not Modified).


Ažuriranje keša: Ako je izvorni server poslao ažurirani resurs, Squid će ažurirati keširanu kopiju tog resursa sa novim podacima. Ako je izvorni server vratio HTTP 304 odgovor, Squid će zadržati postojeći keširani resurs i označiti ga kao važeći za buduće zahteve.


Ovaj proces osvežavanja omogućava Squid-u da održava aktuelne resurse u kešu, osigurava da se keširani sadržaj ne zastareva i da se ažurira prema zadatim pravilima konfiguracije. Kroz konfiguraciju refresh_pattern, administrator Squid proxy servera može prilagoditi kako se različiti tipovi resursa i URL-ova tretiraju u smislu osvežavanja i zadržavanja u kešu.

OPTIONS

Opcije (options) u konfiguraciji refresh_pattern u Squid proxy serveru omogućavaju dodatne prilagodbe za to kako se Squid ponaša prilikom osvežavanja (refreshing) keširanih resursa. Evo nekoliko čestih opcija koje se mogu koristiti:

ignore-reload: Ova opcija govori Squid-u da ignorira osvežavanje keširanog resursa ako korisnik pritisne dugme "Refresh" u svom web pregledaču. Ovo je korisno kada želite da korisnicima omogućite da ručno osveže stranicu, ali ne želite da Squid automatski osvežava resurse nakon korisničkog zahteva za osvežavanje.


ignore-no-store: Kada se ova opcija koristi, Squid će osvežiti resurse čak i ako je izvorni server poslao HTTP zaglavlje "Cache-Control: no-store" koje zabranjuje keširanje resursa. Ovo može biti korisno ako želite da Squid ignoriše takva HTTP zaglavlja i kešira resurse bez obzira na njihove politike o keširanju.


override-expire: Ova opcija omogućava Squid-u da ignoriše vreme isteka koje je postavio izvorni server i da osveži resurse prema refresh_pattern konfiguraciji. To znači da Squid neće čekati da resurs istekne pre nego što ga ažurira, već će se osvežiti prema svojim pravilima.


override-lastmod: Kada se ova opcija koristi, Squid će ignorisati HTTP zaglavlje "Last-Modified" koje izvorni server šalje za resurs. To znači da Squid neće koristiti "Last-Modified" za određivanje kada je resurs osvežen, već će se osvežavati prema refresh_pattern konfiguraciji.


ignore-must-revalidate: Ova opcija se koristi da bi Squid ignorisao HTTP zaglavlje "must-revalidate" koje može biti poslato od strane izvornog servera. "must-revalidate" zahteva da se svaki zahtjev za resursom pošalje iznova iz izvornog servera, ali korišćenjem ove opcije, Squid će ga ignorisati.

Comments

Popular posts from this blog

Squid proxy

squid cache