от KByte(17-11-2002)

рейтинг (-5)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Автор: 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 >>