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.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.15 usr + 0.04 sys = 0.19 CPU)