Erinevus lehekülje "Squid" redaktsioonide vahel

Allikas: Kuutõrvaja
 
30. rida: 30. rida:
 
Allpool on toodud ära sammud mida ma kasutasin squidi installeerimisel, konfigureerimisel, käivitamisel ja seismajätmisel:
 
Allpool on toodud ära sammud mida ma kasutasin squidi installeerimisel, konfigureerimisel, käivitamisel ja seismajätmisel:
  
2. Installeerimine
+
'''Installeerimine'''
  
 
Tarkvata saab aadressilt squid.nlanr.net ja seal on ka palju lugemist!
 
Tarkvata saab aadressilt squid.nlanr.net ja seal on ka palju lugemist!
48. rida: 48. rida:
 
   
 
   
  
3. Konfigureerimine
+
'''Konfigureerimine'''
  
 
Ainus konf fail millega saab ja on vaja tegelda on squid.conf, minul on ta selline:
 
Ainus konf fail millega saab ja on vaja tegelda on squid.conf, minul on ta selline:
  
root@kopka# /usr/local/squid/etc/ $ egrep ^[^#] squid.conf
+
root@kopka# /usr/local/squid/etc/ $ egrep ^[^#] squid.conf
  
http_port 3128
+
http_port 3128
icp_port 3130
+
icp_port 3130
cache_peer cache.tartu.eenet.ee      parent    3128  3130 no-query
+
cache_peer cache.tartu.eenet.ee      parent    3128  3130 no-query
cache_peer_domain cache.tartu.eenet.ee  !.ee
+
cache_peer_domain cache.tartu.eenet.ee  !.ee
acl QUERY urlpath_regex cgi-bin \?
+
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
+
no_cache deny QUERY
cache_mem  8 MB
+
cache_mem  8 MB
acl manager proto cache_object
+
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
+
acl localhost src 127.0.0.1/255.255.255.255
acl sub1 src 192.168.1.0/255.255.255.0
+
acl sub1 src 192.168.1.0/255.255.255.0
acl sub2 src 192.168.2.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
+
acl kopka src 193.40.xxx.xxx/255.255.255.255
http_access allow manager localhost
+
http_access allow manager localhost
http_access allow manager kopka
+
http_access allow manager kopka
http_access allow  sub1
+
http_access allow  sub1
http_access allow  sub2
+
http_access allow  sub2
http_access allow  kopka
+
http_access allow  kopka
icp_access  allow  sub1
+
icp_access  allow  sub1
icp_access  allow  sub2
+
icp_access  allow  sub2
icp_access  allow  kopka
+
icp_access  allow  kopka
root@kopka#
 
  
 
Lühidalt kokkuvõttes realiseerib see konfiguratsioon järgmist:
 
Lühidalt kokkuvõttes realiseerib see konfiguratsioon järgmist:
84. rida: 83. rida:
 
- samuti selle kust monitoringut teha saab
 
- samuti selle kust monitoringut teha saab
  
4. Käivitamine ja seiskamine.
+
'''Käivitamine ja seiskamine'''
  
 
Esimene käivitamine tuleb taha selliselt:
 
Esimene käivitamine tuleb taha selliselt:
  
/usr/local/squid/bin/squid -z
+
/usr/local/squid/bin/squid -z
  
 
Mis loob nn. swap space kus squid hoiab oma andmeid.
 
Mis loob nn. swap space kus squid hoiab oma andmeid.
97. rida: 96. rida:
 
   
 
   
  
#!/bin/sh
+
#!/bin/sh
 
+
case $1 in
+
case $1 in
'start')
+
'start')
  echo "Starting Squid Cache service."
+
  echo "Starting Squid Cache service."
  su - squid -c 'cd /opt/squid/bin;/opt/squid/bin/RunCache > /dev/null
+
  su - squid -c 'cd /opt/squid/bin;/opt/squid/bin/RunCache > /dev/null 2>&1 &' >
2>&1 &' >
 
 
  /dev/null 2>&1
 
  /dev/null 2>&1
;;
+
;;
'stop')
+
'stop')
 
   # Lööme igaks juhuks RunCache maha
 
   # Lööme igaks juhuks RunCache maha
 
   kill -9 `ps -fu squid | grep RunCache| grep -v grep | awk '{print $2}'`
 
   kill -9 `ps -fu squid | grep RunCache| grep -v grep | awk '{print $2}'`
113. rida: 111. rida:
 
   sleep 30
 
   sleep 30
 
   echo "Squid Cache stopped."
 
   echo "Squid Cache stopped."
;;
+
;;
'reload')
+
'reload')
 
   /opt/squid/bin/squid -k reconfigure
 
   /opt/squid/bin/squid -k reconfigure
 
   echo "Squid Cache reloaded."
 
   echo "Squid Cache reloaded."
;;
+
;;
*)
+
*)
 
         echo "usage: $0 start|stop|reload"
 
         echo "usage: $0 start|stop|reload"
;;
+
;;
esac
+
esac
exit 0
+
exit 0
  
 
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
  
 
(Urmas Lett'i soovitus listist eups@ut.ee)
 
(Urmas Lett'i soovitus listist eups@ut.ee)
136. rida: 135. rida:
 
kusjuures töötava squidi puhul on pilt niisugune:
 
kusjuures 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
squid    19483  0.0  0.0  1112    0  ?  SW  Dec  8  0:00 (RunCache)
+
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    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    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    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    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    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    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    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
+
squid    31800  0.0  0.0  852    0  ?  SW  Dec  8  0:00          \_ (dnsserve
root@kopka /usr/local/squid/logs/ $
 
  
5. Monitoring
+
'''Monitoring'''
  
 
Kaval on panna tööle ka kaasapandud cgi script squidi töö jälgimiseks (nt. selleks, et jälgida kuidas nn. hitte tuleb -
 
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 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.
 
See eeldab, et samas masinas on apache (või mõni muu sarnane) webserver installeeritud.

Redaktsioon: 22. oktoober 2006, kell 18:16

Squid (in. k. kalmaar :)


Sissejuhatus Installeerimine Konfigureerimine Käivitamine ja seiskamine Monitoring

Sissejuhatus

Probleem mida järgnev jutt lahendada püüab seineb selles, et kas ei saaks kuidagi asja opitimiseerida, kui terve klassitäis arvuteid korraga (ja tunniaja 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äismaailmast 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 ma ilmestamiseks konkreetseid arve (minutid, päevad, 100 MB); nende arvude valik ja parent ja naabri valik võib osutuda keeruliseks ja teiste administraatoritega koostööd eeldavaks ettevõtmiseks.

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

Installeerimine

Tarkvata saab aadressilt squid.nlanr.net ja seal on ka palju lugemist! samuti on oluline vaadata 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@kopka# /usr/local/squid/etc/ $ 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

Käivitamine ja seiskamine

Esimene käivitamine tuleb taha selliselt:

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

Mis 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)

(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.

kusjuures 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.