Squid podėlis (cache)

**Squid** – įgaliotoji tarnybinė stotis ir žiniatinklo podėlio tarnybinė programa. Ši programa naudojama įvairiais tikslais, pradedant žiniatinklio tarnybinių stočių spartinimu įsimenant pasikartojančias užklausas, įsimenant žiniatinklio, srities vardų sistemų užklausas (DNS) ir baigiant kompiuterių tinklų apsaugos tikslais. Nors **Squid** dažniausiai naudojamas HTTP ir FTP protokolams, Squid iš dalies suderinama su kai kuriais kitais protokolais, įskaitant Transport Layer Security, Secure Sockets Layer (SSL), Internet Gopher ir HTTPS. Squid (3.0) versijoje dalinai realizuotas ir suderinamumas su IPv6.

Squid programa buvo kuriama ne vienerius metus. Podėlio sistemų technologijų tyrimą finansavo valstybinė JAV agentūra „National Science Foundation“. Pirmieji programavimo darbai buvo atlikti Kalifornijos universitete, San Diego mieste. Šiuo metu Squid plėtojimas finansuojamas iš savanoriškos naudotojų finansinės paramos. Prie Squid kūrimo prisideda būrys programuotojų, savanoriškai aukojančių savo laiką ir pastangas programos plėtojimui.

Nors iš pradžių buvo skirta Unix operacinėms sistemoms, Squid programa kuo puikiausiai veikia ir Microsoft Windows operacinėse sistemose. Squid yra nemokama programinė įranga, platinama pagal GNU GPL licenciją.

## Įgaliotoji žiniatinklio stotis (proxy)

Podėliavimas (angl. Caching) – per HTTP, FTP ar Gopher protokolus gaunamų interneto objektų (pvz., įvairios rinkmenos, žiniatinklio dokumentai) perkėlimas į vietą, artimesnę užklausą vykdančiam naudotojui. Žiniatinklio naršyklės tokiu atveju gali naudoti vietiniame kompiuterių tinkle esantį Squid podėlį, kaip įgaliotają žiniatinklio stotį, kas žymiai padidina dažnai naudojamų ir podėlyje išsaugotų objektų parsiuntimo greitį. Be to, naudojant Squid podėlį, sumažėja interneto linijos apkrova. Tai dažnai ypač naudinga Interneto paslaugų tiekėjams, kadangi taip klientams sudaromas didesnės interneto greitaveikos įspūdis. Squid yra ne tik podėlio tarnybinė programa, bet ir įgaliotoji stotis (pateikianti užklausas kitoms stotims taip, tarsi pati būtų galutinis naudotojas), todėl gali padėti apsaugoti jos vartotojų privatumą ir anonimiškumą, bei užtikrinti papildomos apsaugos lygmenį. Kita vertus, Squid gali kaupti ir programos darbo žurnalą, kuriame matyti, kokie naudotojai, kada ir kokias svetaines naršė, kokias rinkmenas parsisiuntė. Apibendrinus programos darbo žurnalą matyti, kokie naudotojai labiausiai prisidėjo prie interneto linijos apkrovos, kokios lankomiausios svetainės ir t. t.

Klientinė programa (pvz.: naršyklė) gali būti išimtinai suderinta taip, kad būtų naudojama konkreti įgaliotoji stotis, arba įgaliotoji stotis gali būti naudojama ir atskirai nederinant klientinių programų. Pastarasis metodas yra vadinamas skaidriuoju podėliavimu (angl. „transparent caching“). Šiuo atveju Squid perima visas išsiunčiamas HTTP užklausas ir įsimena visus pateiktus atsakymus į užklausas. Dažnai naudotojai gali net neįtarti, kad jų užklausas apdoroja ir registruoja Squid tarnybinė programa.

Yra galimybė padidinti anonimiškumo lygį, naudojant kai kurias Squid funkcijas, pavyzdžiui, uždraudžiant ar pakeičiant tam tikrus antraštinius laukus kliento HTTP užklausose. Kaip naudojamos šios funkcijos, ir apskritai ar jos naudojamos, nustato asmuo, valdantis Squid tarnybinę stotį.

## Atvirkštinė įgaliotoji stotis

Aukščiau aprašytas klasikinis podėlio veikimo principas, kai podėlyje saugomi ribotam naudotojų ratui skirti objektai iš neriboto tinklalapių skaičiaus. Galimas ir kitoks scenarijus, vadinamoji atvirkštinės įgaliotosios stoties (angl. reverse proxy) situacija, skirta tinklalapių tarnybinių stočių spartinimui (naudojama httpd_accel_host funkcija). Šiuo atveju, podėlis aptarnauja neribotą naudotojų skaičių, pateikdamas objektų iš riboto tarnybinių stočių skaičiaus (gal net iš vienos stoties) kopijas.

Pavyzdžiui, jeigu *lėta.stotis.lt* yra „tikroji“ tarnybinė stotis, o *www.pavyzdys.lt* yra Squid podėlis, tai „spartinantysis“ Squid podėlis, pirmą kartą gavęs užklausą informacijai iš *www.pavyzdys.lt* parsiųsti, parsiunčia reikiamą informaciją iš *lėta.stotis.lt*, o gavęs pakartotiną užklausą (pavyzdžiui, iš kitų vartotojų) tai pačiai informacijai gauti, vartotojui pateikia podėlyje išsaugotą informacijos kopiją.
Taigi, be jokio vartotojo įsikišimo, sumažinamas srautas į „tikrąją“ tarnybinę stotį, taip sumažinant tarnybinės stoties procesoriaus(-ių), atminties ir interneto linijos apkrovą.
Kita vertus, „tikroji“ tarnybinė stotis, be papildomos konfigūracijos, ataskaitose negalės atvaizduoti tikrosios apkrovimo (lankomumo) statistikos, kadangi atrodys, kad visas užklausas vykdė viena atvirkštinė įgaliotoji stotis. Kad taip nenutiktų, galima naudoti HTTP antraštę X_HTTP_FORWARDED_FOR HTTP, kurią su tikrojo naudotojo IP adresu įgaliotoji stotis perduotų „tikrajai“ tarnybinei stočiai.

Squid sistema vienu metu gali veikti ir kaip tiesioginė ir kaip atvirkštinė įgaliotoji tarnybinė stotis.

## Suderinamumas

Squid veikia šiose operacinėse sistemose:
* AIX
* BSDI
* Digital Unix
* FreeBSD
* HP-UX
* IRIX
* Linux
* Mac OS X
* NetBSD
* NeXTSTEP
* OpenBSD
* SCO Unix
* Solaris
* Windows

## Išnašos

## Nuorodos

* Oficiali projekto svetainė
* Wikipedia tarnybinių stočių sąrašas
* Squid „kaip padaryti“ , Squid Reklamų blokavimas 
* SQUID Optimizavimas  Prieigos valdymo sąrašas 
* Squid Tutorial  – Squid dokumentacija
* Squid reverse proxy – Atvirkštinės įgaliotosios stoties kūrimui su Squid
* Configuration Manual  – ViSolve Squid konfigūracijos vadovas
* Kompiuterinių terminų žodynas – Šiuo žodynu naudotasi verčiant šį straipsnį