Erinevus lehekülje "Squid" redaktsioonide vahel

Allikas: Kuutõrvaja
(Konfigureerimine)
(Käivitamine ja seiskamine)
105. rida: 105. rida:
 
  /usr/local/squid/bin/squid -z
 
  /usr/local/squid/bin/squid -z
  
Mis loob nn. swap space kus squid hoiab oma andmeid.
+
See loob nn. swap space, kus squid hoiab oma andmeid.
  
ja hiljem käivitada, seisata ja muudetud konfiguratsiooni sättida sellise scriptiga (võib muidugi ka lihtsalt käske anda)
+
Hiljem käivitada, seisata ja muudetud konfiguratsiooni sättida sellise scriptiga (võib muidugi ka lihtsalt käske anda)
  
 
(Selle scripti avaldas Toomas Soome eups@ut.ee listis, loodan, et autor ei ole selle siin taas-avaldamise vastu)
 
(Selle scripti avaldas Toomas Soome eups@ut.ee listis, loodan, et autor ei ole selle siin taas-avaldamise vastu)
140. rida: 140. rida:
 
squid -h näitab ära kõik võimalikud võtmed.
 
squid -h näitab ära kõik võimalikud võtmed.
  
Kusjuures RunCache'i roll on vaadata, et kui mõni squid ära sureb siis ta tagasi tööle panna
+
Kusjuures RunCache'i roll on vaadata, et kui mõni squid ära sureb, siis ta tagasi tööle panna.
Et log failid väga suureks ei kasvaks oleks vaja nt. cron'ist aegajalt teha 'squid -k rotate' t või lihtsalt mõni squid kelle pid on logs/squid.pid 'is ära tappa:
+
Et log failid väga suureks ei kasvaks, oleks vaja nt. cron'ist aegajalt teha 'squid -k rotate' t või lihtsalt mõni squid, kelle pid on logs/squid.pid 'is ära tappa:
  
 
  kill -USR1 `cat /etc/squid.pid` >/dev/null 2>&1
 
  kill -USR1 `cat /etc/squid.pid` >/dev/null 2>&1
149. rida: 149. rida:
 
RunCache tõmbab automaatselt ise uue squidi üles.
 
RunCache tõmbab automaatselt ise uue squidi üles.
  
kusjuures töötava squidi puhul on pilt niisugune:
+
Töötava squidi puhul on pilt niisugune:
  
 
  root@kopka /usr/local/squid/logs/ $ ps auxf | grep squid
 
  root@kopka /usr/local/squid/logs/ $ ps auxf | grep squid

Redaktsioon: 16. jaanuar 2007, kell 11:22

Squid (in. k. kalmaar :)

Sissejuhatus

Probleem, mida järgnev jutt lahendada püüab, seisneb selles, et kas ei saaks kuidagi asja optimiseerida, kui terve klassitäis arvuteid korraga (ja tunni aja pärast jälle) püüab külastada ühte ja sama kodulehekülge (nt. www.postimees.ee'd).

Klassikaliselt on arvutiklass ühe serveri taha ära maskeraaditud ja igasse arvutisse tuuakse info eemalt internetist (antud juhul www.postimees.ee'st) eraldi kohale. Alltoodud joonis kujutab kolme võrgukaardiga serverit, millel töötab programm squid. On näha kahte alamvõrku (192.168.1.0, 192.168.2.0), millel istuvad nn. klientarvutid.


Programmi squid roll seisneb selles, et kogu infovahetus välismaailmast klientide poole toimub läbi tema. Squid kuulab pealt klientide poolt sooritatavaid päringuid (nt. www.postimees.ee) ja lisaks sellele, et ta toob netist ära vastava materjali ning annab need üle päringu esitanud klendile, talletab ta tolle materjali teatud ajaks (mõned päevad) oma andmebaasi (selle maht on ca 100 MB). Ja kui nüüd paari minuti või tunni pärast esitab keegi sama päringu (st. soovib netist alla laadida www.postimees.ee pealehte), siis squid ei lähe sellele enam netti järele vaid võtab materjali oma kohalikust andmebaasist ning annab kliendile.

Selline mehhanism toimib ja praktiliselt iga kolmas - neljas päring saab vastatud kasutades kohalikku materjali. See efekt on juba märgatav.

Siin on veel selline moment, et mitu squid serverit võivad teha omavahel koostööd.

Üks võimalus on see, et määrata oma squidile parent (vanem) - siis on nii, et päringud, mis ei sisaldu enda kohalikus andmebaasis, saadetakse parent squidile (see asub tavaliselt teises - suuremas, paremas masinas) ning too vaatab kust saab.

Teine võimalus on määrata oma squidile sibling (naaber) - siis on nii, et naabrid peavad efektiivselt ühte suurt andmebaasi mitme peale. Ja kui päring esitatakse ning kohalik squid ei leia oma andmebaasist vastust, siis kõigepealt külastab ta naabreid ja seejärel parent'i.

Ülalesitatud jutus kasutasin ilmestamiseks konkreetseid arve (minutid, päevad, 100 MB); nende arvude valik, parent ja naabri valik võib osutuda keeruliseks ja teiste administraatoritega koostööd eeldavaks ettevõtmiseks.

Allpool on toodud ära sammud, mida kasutasin squidi installeerimisel, konfigureerimisel, käivitamisel ja seismajätmisel:

Installeerimine

Tarkvata saab aadressilt squid.nlanr.net, kus on ka palju lugemist! Oluline on vaadata ka cache.eenet.ee, milline parent endale vailda (ilus oleks omanikelt luba küsida)

ja cache.online.ee/cache/cacheware.old.html ideoloogilise poole pealt (autor Andres Kroonmaa)

tõmbasin squid 2.0 ära

lõin kasutaja (homeiga /usr/local/squid) ja grupi squid ja kõik järgnevad sammud sooritasin olles sisse loginud selle kasutaja alt.

pakkisin /usr/local/squid alla lahti src-i

tegin ./configure --prefix=/usr/local/squid
make; make install

Konfigureerimine

Ainus konf fail, millega saab ja on vaja tegelda, on squid.conf, minul on ta selline:

root@masin# egrep ^[^#] squid.conf
http_port 3128
icp_port 3130
cache_peer cache.tartu.eenet.ee       parent    3128  3130 no-query
cache_peer_domain cache.tartu.eenet.ee  !.ee
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem  8 MB
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl sub1 src 192.168.1.0/255.255.255.0
acl sub2 src 192.168.2.0/255.255.255.0
acl kopka src 193.40.xxx.xxx/255.255.255.255
http_access allow manager localhost
http_access allow manager kopka
http_access allow  sub1
http_access allow  sub2
http_access allow  kopka
icp_access  allow  sub1
icp_access  allow  sub2
icp_access  allow  kopka

Lühidalt kokkuvõttes realiseerib see konfiguratsioon järgmist:

- kuulatakse porte 3128 ja 3130 - vanemaks on cache.tartu.eenet.ee vastavate portidega kusjuures mitte saata ICP (???) päringuid talle - Küsida kõike peale .ee domainide - acl access list: määrab masinad ja alamvõrgud kes meie squidi kasutada saavad ja annab neile õigused - samuti selle kust monitoringut teha saab

acl abil saab defineerida faile, kuhu saab kirjutada näiteks sõnu, mille esimemisel veebis veeb blokeeritakse. Näiteks

acl porn url_regex "/usr/local/etc/squid/porn.block.txt"
acl notporn url_regex "/usr/local/etc/squid/porn.unblock.txt"
acl badlang url_regex "/usr/local/etc/squid/badlang.block.txt"

ja siis vastavalt

http_access allow notporn all 
http_access deny porn all
http_access deny badlang all

failidesse võib kirjutada järgnevalt

.t100.com
.mp3
.mpeg
morpheus
napster
.mpg 

ehk nagu näha, keelata saab nii domeene, faililaiendeid kui ka üksikuid tekstilõike sisaldavaid lehti

Käivitamine ja seiskamine

Esimene käivitamine tuleb taha selliselt:

/usr/local/squid/bin/squid -z

See loob nn. swap space, kus squid hoiab oma andmeid.

Hiljem käivitada, seisata ja muudetud konfiguratsiooni sättida sellise scriptiga (võib muidugi ka lihtsalt käske anda)

(Selle scripti avaldas Toomas Soome eups@ut.ee listis, loodan, et autor ei ole selle siin taas-avaldamise vastu)


#!/bin/sh

case $1 in
'start')
  echo "Starting Squid Cache service."
  su - squid -c 'cd /opt/squid/bin;/opt/squid/bin/RunCache > /dev/null 2>&1 &' >
/dev/null 2>&1
;;
'stop')
 # Lööme igaks juhuks RunCache maha
 kill -9 `ps -fu squid | grep RunCache| grep -v grep | awk '{print $2}'`
 # Kas te oleksite nii lahke ja hakkaksite nüüd seisma jääma?
 /opt/squid/bin/squid -k shutdown
 sleep 30
 echo "Squid Cache stopped."
;;
'reload')
 /opt/squid/bin/squid -k reconfigure
 echo "Squid Cache reloaded."
;;
*)
       echo "usage: $0 start|stop|reload"
;;
esac
exit 0

squid -h näitab ära kõik võimalikud võtmed.

Kusjuures RunCache'i roll on vaadata, et kui mõni squid ära sureb, siis ta tagasi tööle panna. Et log failid väga suureks ei kasvaks, oleks vaja nt. cron'ist aegajalt teha 'squid -k rotate' t või lihtsalt mõni squid, kelle pid on logs/squid.pid 'is ära tappa:

kill -USR1 `cat /etc/squid.pid` >/dev/null 2>&1

(Urmas Lett'i soovitus listist eups@ut.ee)

RunCache tõmbab automaatselt ise uue squidi üles.

Töötava squidi puhul on pilt niisugune:

root@kopka /usr/local/squid/logs/ $ ps auxf | grep squid
squid    19483  0.0  0.0  1112     0  ?  SW  Dec  8   0:00 (RunCache)
squid    19488  0.0  0.0  2392     0  ?  SW  Dec  8   0:00  \_ (squid)
squid    19489  0.1 18.6 16044  5752  ?  S   Dec  8   4:05      \_ (squid) -sY
squid    19495  0.0  0.2   808    64  ?  S   Dec  8   0:00          \_ (unlinkd)
squid    31796  0.0  0.6   856   208  ?  S   Dec  8   0:00          \_ (dnsserve
squid    31797  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve
squid    31798  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve
squid    31799  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve
squid    31800  0.0  0.0   852     0  ?  SW  Dec  8   0:00          \_ (dnsserve

Monitoring

Kaval on panna tööle ka kaasapandud cgi script squidi töö jälgimiseks (nt. selleks, et jälgida kuidas nn. hitte tuleb - see on protsent läbi squidi esitatud päringutest, mida ta oma kohalikust andmebaasist rahuldada sai). See eeldab, et samas masinas on apache (või mõni muu sarnane) webserver installeeritud.