Squid-cache

от ILuxWiki

Направо към: навигация, търсене

Съдържание

Обща информация

Какво е squid-cache?

squid-cache е прокси сървър с изключително много възможности. И най важното, че е OpenSource.

Официална страница:

www.squid-cache.org

Компилиране и инсталация

Конфигуриране

Настройка за достъп с парола

#proxy auth
#acl foo proxy_auth REQUIRED
auth_param basic program /usr/libexec/squid/ncsa_auth /etc/squid/ passwd
acl guests proxy_auth user1 user2
acl target dst www.xxx.com

http_access allow guests target
http_access deny target

Администриране

Инструменти за мониторинг и администрация

Calamaris

Calamaris - една наистина добра и доста подробна прогрма за мониторинг. Calamaris

Скрипт за разглеждане на access.log

име: parse.squid

 #!/usr/bin/perl
 # replace with proper date 
 $regex_time = "Aug 20";
 while  (<>) {
  $in = $_;
  $in =~ /(^\d+)(.*)/;
  $time = scalar localtime($1);
  if( $time =~ /$regex_time/ ) {
    print "$time ", join ' ' ,(split /\s+/, $in)[2,4,6], "\n";
  }
 }

Начин на употреба:

 tail -2000 /var/log/squid/access.log | ./parse.squid > dump.txt 

--Sysop 18:13, 26 май 2005 (EEST)


Разбира се и cachemgr.cgi има си го в самия squid само трябва да се настрои.

И една писaна на perl покриваща моите нужди за наблюдение в реално време името и е d3 [ не питайте защо :) ]:

#!/usr/bin/perl 
$acclog = "path/to/accesslog"
open ( FI , "tail -fs0 $acclog |" ) ;
while (<FI>) {
       print "\x1b\x5b\x48\x1b\x5b\x32\x4a";
       ($time,$tr,$ip) = (split /\s+/)[1,4,8];
        $ip =~ s/.*\///;
        $tr{$ip} = $tr/1024;
        $speed{$ip}=($tr>>10)*1000/($time+1);
        $trsum{$ip}+=$tr/1024;
        $count{$ip}+=1;
        for ( keys %speed) {
           printf ("%20s:%7.2f  %6.2f  %10.2f %2s  %10.0f\n",
                   $_,$speed{$_},$tr{$_},
                   ($trsum{$_}>1024)?$trsum{$_}/1024:$trsum{$_},$trsum{$_}>1024?"M":"K",$count{$_});
        }
        print "=" x 70,"\n";
        print "\n\n\n\n$_\n";
        select(undef, undef, undef, 0.02);  
}

Хитрости, препоръки, съвети

безпорядъка на Драго

Това съм го пробвал и при мен лично работи. Приемам всякакви критики коментари и съвети. Също така не мисля, че е кой знае колко подробна, а и имам известни затруднения с обесненията :)

Като за начало ще ни трябва някои по пресен squid от squid-cache След което си го разархивираме и влизаме в директорията където е разархивиран. Трябва да знаем какъв ни е процесора :) ако все пак нямаме представа можем да разберем като напишем `grep "model name" /proc/cpuinfo` (тва е за линукс по големите ще кажат, какво праим с BSD-to) :) И сега почваме с магиите :) аз лично си отварям файла ./configure и търся ред-а :

if test "$GCC" = yes; then 
         

под него е :

CFLAGS="-g -O2"
      

поправяме го на :

CFLAGS="-g -O3 -Wall -mcpu=$cpuname -finline-functions -frename-registers\
  -funroll-loops -fomit-frame-pointer -pipe"
               

Съхраняваме и затваряме файла.

Можем да изпълним и командата ulimit -HSn 8192 това е за max file descriptors поняко има едни лоши клиенти или вирусчета който правят по вечко връзки през проксито и запълват всички FD

След което изпълняваме и :

./configure --enable-gnuregex --enable-carp --with-pthreads --enable-delay-pools \
            --enable-kill-parent-hack   --enable-linux-netfilter --enable-truncate \
            --enable-storeio=ufs,null

компилираме си

 make && make install

правим си конфигурационен файл и стартираме със

 squid -sY

при мен резултата е увеличаване на бързодействието в ПЪТИ.

Лични инструменти