LINUX-BG Адрес : http://www.linux-bg.org |
Често задавани въпроси за Squid (част 1) |
От: KByte Публикувана на: 17-11-2002 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=345854174 |
Автор: KByte 1.0 Увод Squid е добре работещ proxy caching server за web клиенти, съвместим с FTP,gopher и HTTP. Squid се състои от squid server, DNS (Domain Name System) lookup програма, допълнителни програми, и инструменти за управление. 1.1 Защо се казва Squid? Harris` Lament казва: "Всички други добри имена са заети." 1.2 С кои Операционни системи е съвместим? Linux FreeBSD NetBSD BSDI OSF и Digital UNIX IRIX SunOS/Solaris NeXTStep SCO Unix AIX HP-UX OS/2 За повече информация прочетете http://www.squid-cache.org/platforms.html. 2.0 Компилиране на Squid 2.1 Кой файл да изтегля? Трябва да изтеглите source файла (т.е squid-1.1.6-src.tar.gz) от http://www.squid-cache.org. 2.2 Как да компилирам Squid? При версии Squid-1.0 и Squid-1.1: % tar xzf squid-1.1.21-src.tar.gz % cd squid-1.1.21 % make При Squid-2: % tar xzf squid-2.0.RELEASE-src.tar.gz % cd squid-2.0.RELEASE % ./configure % make 2.3 Oт какъв компилатор се нуждая? За да компилирате Squid, се нуждаете от ANSI C компилатор. 2.4 Как мога да получа DNS TTL информация? Ако имате source`a на BIND, можете да го модифицирате както е посочено по-долу. Това е причина global`ната променливата _dns_ttl_ да бъде поставена с TTL от най последен lookup. След това, когато компилирате Squid, configure скрипта ще провери за _dns_ttl_ символа в libresolv.a. Този exploit e предоставен от Endre Balint Nagy. diff -ru bind-4.9.4-orig/res/gethnamaddr.c bind-4.9.4/res/gethnamaddr.c --- bind-4.9.4-orig/res/gethnamaddr.c Mon Aug 5 02:31:35 1996 bind-4.9.4/res/gethnamaddr.c Tue Aug 27 15:33:11 1996 @@ -133,6 133,7 @@ } align; extern int h_errno; int _dns_ttl_; #ifdef DEBUG static void @@ -223,6 224,7 @@ host.h_addr_list = h_addr_ptrs; haveanswer = 0; had_error = 0; _dns_ttl_ = -1; while (ancount-- > 0 && cp n = dn_expand(answer->buf, eom, cp, bp, buflen); if ((n @@ -232,8 234,11 @@ cp = n; /* name */ type = _getshort(cp); cp = INT16SZ; /* type */ - class = _getshort(cp); - cp = INT16SZ INT32SZ; /* class, TTL */ class = _getshort(cp); cp = INT16SZ; /* class */ if (qtype == T_A && type == T_A) _dns_ttl_ = _getlong(cp); cp = INT32SZ; /* TTL */ n = _getshort(cp); cp = INT16SZ; /* len */ if (class != C_IN) { And here is a patch for BIND-8: *** src/lib/irs/dns_ho.c.orig Tue May 26 21:55:51 1998 --- src/lib/irs/dns_ho.c Tue May 26 21:59:57 1998 *************** *** 87,92 **** --- 87,93 ---- #endif extern int h_errno; int _dns_ttl_; /* Definitions. */ *************** *** 395,400 **** --- 396,402 ---- pvt->host.h_addr_list = pvt->h_addr_ptrs; haveanswer = 0; had_error = 0; _dns_ttl_ = -1; while (ancount-- > 0 && cp n = dn_expand(ansbuf, eom, cp, bp, buflen); if ((n *************** *** 404,411 **** cp = n; /* name */ type = ns_get16(cp); cp = INT16SZ; /* type */ ! class = ns_get16(cp); ! cp = INT16SZ INT32SZ; /* class, TTL */ n = ns_get16(cp); cp = INT16SZ; /* len */ if (class != C_IN) { --- 406,416 ---- cp = n; /* name */ type = ns_get16(cp); cp = INT16SZ; /* type */ ! class = _getshort(cp); ! cp = INT16SZ; /* class */ ! if (qtype == T_A && type == T_A) ! _dns_ttl_ = _getlong(cp); ! cp = INT32SZ; /* TTL */ n = ns_get16(cp); cp = INT16SZ; /* len */ if (class != C_IN) { 3.0 Как да старитрам Squid? След като промените config файла, стартирайте Squid за първи път. Squid 2.X Първо трябва да създадете swap директории. % /usr/local/squid/bin/squid -z След това изпълнете: % /usr/local/squid/bin/squid -NCd1 Ако всичко е наред трябва да ви изпише: "Ready to serve requests." Ако желаете да старитрате squid като демон изпълнете командата: % /usr/local/squid/bin/squid 4.0 Въпроси свързани с конфигурирането. За да свържеш твоето cache с други, използвай cache_host ръководен от squid.conf. Ето за пример следващият squid.conf: # squid.conf - On the host: childcache.example.com # # Format is: hostname type http_port udp_port # cache_host parentcache.example.com parent 3128 3130 cache_host childcache2.example.com sibling 3128 3130 cache_host childcache3.example.com sibling 3128 3130 cache_host_domain e директива която позволява да оказвате някои proxy`та като parent или sibling за следните domain`и: # squid.conf - On the host: sv.cache.nlanr.net # # Format is: hostname type http_port udp_port # cache_host electraglide.geog.unsw.edu.au parent 3128 3130 cache_host cache1.nzgate.net.nz parent 3128 3130 cache_host pb.cache.nlanr.net parent 3128 3130 cache_host it.cache.nlanr.net parent 3128 3130 cache_host sd.cache.nlanr.net parent 3128 3130 cache_host uc.cache.nlanr.net sibling 3128 3130 cache_host bo.cache.nlanr.net sibling 3128 3130 cache_host_domain electraglide.geog.unsw.edu.au .au cache_host_domain cache1.nzgate.net.nz .au .aq .fj .nz cache_host_domain pb.cache.nlanr.net .uk .de .fr .no .se .it cache_host_domain it.cache.nlanr.net .uk .de .fr .no .se .it cache_host_domain sd.cache.nlanr.net .mx .za .mu .zm Край на първа част! Превод на: SQUID Frequently Asked Questions: Memory. << Как да спрем скрийнсейвъра на КДЕ докато гледаме филми :) | WET 11 Linksys евтино решение за wireless home lan >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|