]> git.ipfire.org Git - thirdparty/squid.git/blame - src/cf.data.pre
Minor arguments mismatch in file_write declaration found by Andrey Shorin.
[thirdparty/squid.git] / src / cf.data.pre
CommitLineData
3a278cb8 1
9cef6668 2#
a560ee93 3# $Id: cf.data.pre,v 1.222 2001/07/28 09:21:31 hno Exp $
9cef6668 4#
5#
2b6662ba 6# SQUID Web Proxy Cache http://www.squid-cache.org/
9cef6668 7# ----------------------------------------------------------
8#
2b6662ba 9# Squid is the result of efforts by numerous individuals from
10# the Internet community; see the CONTRIBUTORS file for full
11# details. Many organizations have provided support for Squid's
12# development; see the SPONSORS file for full details. Squid is
13# Copyrighted (C) 2000 by the Regents of the University of
14# California; see the COPYRIGHT file for full details. Squid
15# incorporates software developed and/or copyrighted by other
16# sources; see the CREDITS file for full details.
9cef6668 17#
18# This program is free software; you can redistribute it and/or modify
19# it under the terms of the GNU General Public License as published by
20# the Free Software Foundation; either version 2 of the License, or
21# (at your option) any later version.
22#
23# This program is distributed in the hope that it will be useful,
24# but WITHOUT ANY WARRANTY; without even the implied warranty of
25# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26# GNU General Public License for more details.
27#
28# You should have received a copy of the GNU General Public License
29# along with this program; if not, write to the Free Software
30# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
31#
32
0f74202c 33COMMENT_START
448cd7c7 34 WELCOME TO SQUID 2
35 ------------------
3a278cb8 36
cf5cc17e 37 This is the default Squid configuration file. You may wish
2b6662ba 38 to look at the Squid home page (http://www.squid-cache.org/)
6b8e7481 39 for the FAQ and other documentation.
3a278cb8 40
debd9a31 41 The default Squid config file shows what the defaults for
42 various options happen to be. If you don't need to change the
43 default, you shouldn't uncomment the line. Doing so may cause
44 run-time problems. In some cases "none" refers to no default
efd900cb 45 setting at all, while in other cases it refers to a valid
debd9a31 46 option - the comments for that keyword indicate if this is the
47 case.
48
0f74202c 49COMMENT_END
3a278cb8 50
0f74202c 51COMMENT_START
3a278cb8 52 NETWORK OPTIONS
53 -----------------------------------------------------------------------------
0f74202c 54COMMENT_END
3a278cb8 55
934b03fc 56NAME: http_port ascii_port
7e3ce7b9 57TYPE: sockaddr_in_list
f53b06f9 58DEFAULT: none
59DEFAULT_IF_NONE: 3128
7e3ce7b9 60LOC: Config.Sockaddr.http
934b03fc 61DOC_START
7e3ce7b9 62 Usage: port
63 hostname:port
64 1.2.3.4:port
934b03fc 65
7e3ce7b9 66 The socket addresses where Squid will listen for HTTP client
67 requests. You may specify multiple socket addresses.
68 There are three forms: port alone, hostname with port, and
69 IP address with port. If you specify a hostname or IP
70 address, then Squid binds the socket to that specific
71 address. This replaces the old 'tcp_incoming_address'
72 option. Most likely, you do not need to bind to a specific
73 address, so you can use the port number alone.
74
75 The default port number is 3128.
76
efd900cb 77 If you are running Squid in accelerator mode, then you
7e3ce7b9 78 probably want to listen on port 80 also, or instead.
79
80 The -a command line option will override the *first* port
81 number listed here. That option will NOT override an IP
82 address, however.
934b03fc 83
efd900cb 84 You may specify multiple socket addresses on multiple lines.
934b03fc 85DOC_END
86
1f7c9178 87NAME: https_port
88IFDEF: USE_SSL
d193a436 89TYPE: https_port_list
1f7c9178 90DEFAULT: none
91LOC: Config.Sockaddr.https
92DOC_START
d193a436 93 Usage: [ip:]port cert=certificate.pem [key=key.pem]
1f7c9178 94
d193a436 95 The socket address where Squid will listen for HTTPS client
96 requests.
97
1f7c9178 98 This is really only useful for situations where you are running
99 squid in accelerator mode and you want to do the SSL work at the
100 accelerator level.
1f7c9178 101
d193a436 102 If key is not specified then the given certificate is assumed to be a
103 combined certificate and key file.
1f7c9178 104
d193a436 105 You may specify multiple socket addresses on multiple lines,
106 each with their own SSL certificate.
1f7c9178 107DOC_END
108
109NAME: ssl_version
110IFDEF: USE_SSL
111TYPE: int
112DEFAULT: 1
113LOC: Config.SSL.version
114DOC_START
115 Determines the version of SSL/TLS used.
116 1: SSLv2/SSLv3
117 2: SSLv2 only
118 3: SSLv3 only
119 4: TLSv1
120DOC_END
121
934b03fc 122
123NAME: icp_port udp_port
124TYPE: ushort
125DEFAULT: 3130
126LOC: Config.Port.icp
127DOC_START
78a0e865 128 The port number where Squid sends and receives ICP queries to
934b03fc 129 and from neighbor caches. Default is 3130. To disable use
130 "0". May be overridden with -u on the command line.
934b03fc 131DOC_END
132
459f1836 133NAME: htcp_port
134IFDEF: USE_HTCP
135TYPE: ushort
136DEFAULT: 4827
137LOC: Config.Port.htcp
138DOC_START
78a0e865 139 The port number where Squid sends and receives HTCP queries to
459f1836 140 and from neighbor caches. Default is 4827. To disable use
141 "0".
142
6b8e7481 143 To enable this option, you must use --enable-htcp with the
144 configure script.
459f1836 145DOC_END
146
934b03fc 147
148NAME: mcast_groups
149TYPE: wordlist
150LOC: Config.mcast_group_list
1273d501 151DEFAULT: none
934b03fc 152DOC_START
cf5cc17e 153 This tag specifies a list of multicast groups which your server
78a0e865 154 should join to receive multicasted ICP queries.
934b03fc 155
156 NOTE! Be very careful what you put here! Be sure you
157 understand the difference between an ICP _query_ and an ICP
158 _reply_. This option is to be set only if you want to RECEIVE
159 multicast queries. Do NOT set this option to SEND multicast
a95856a0 160 ICP (use cache_peer for that). ICP replies are always sent via
934b03fc 161 unicast, so this option does not affect whether or not you will
162 receive replies from multicast group members.
163
164 You must be very careful to NOT use a multicast address which
efd900cb 165 is already in use by another group of caches.
934b03fc 166
cf5cc17e 167 If you are unsure about multicast, please read the Multicast
2b6662ba 168 chapter in the Squid FAQ (http://www.squid-cache.org/FAQ/).
cf5cc17e 169
934b03fc 170 Usage: mcast_groups 239.128.16.128 224.0.1.20
171
cf5cc17e 172 By default, Squid doesn't listen on any multicast groups.
934b03fc 173DOC_END
174
175
934b03fc 176NAME: tcp_outgoing_address outbound_address
177TYPE: address
178LOC: Config.Addrs.tcp_outgoing
270b86af 179DEFAULT: 255.255.255.255
934b03fc 180DOC_NONE
181
182NAME: udp_incoming_address
183TYPE: address
184LOC:Config.Addrs.udp_incoming
270b86af 185DEFAULT: 0.0.0.0
934b03fc 186DOC_NONE
187
188NAME: udp_outgoing_address
189TYPE: address
190LOC: Config.Addrs.udp_outgoing
270b86af 191DEFAULT: 255.255.255.255
934b03fc 192DOC_START
193 Usage: tcp_incoming_address 10.20.30.40
194 udp_outgoing_address fully.qualified.domain.name
195
934b03fc 196 tcp_outgoing_address is used for connections made to remote
197 servers and other caches.
198 udp_incoming_address is used for the ICP socket receiving packets
199 from other caches.
200 udp_outgoing_address is used for ICP packets sent out to other
201 caches.
202
efd900cb 203 The default behavior is to not bind to any specific address.
934b03fc 204
6b53c392 205 A *_incoming_address value of 0.0.0.0 indicates that Squid should
206 listen on all available interfaces.
207
208 If udp_outgoing_address is set to 255.255.255.255 (the default)
209 then it will use the same socket as udp_incoming_address. Only
210 change this if you want to have ICP queries sent using another
211 address than where this Squid listens for ICP queries from other
212 caches.
213
5a3f6538 214 NOTE, udp_incoming_address and udp_outgoing_address can not
6b53c392 215 have the same value since they both use port 3130.
934b03fc 216
7e3ce7b9 217 NOTE, tcp_incoming_address has been removed. You can now
218 specify IP addresses on the 'http_port' line.
934b03fc 219DOC_END
220
0f74202c 221COMMENT_START
3a278cb8 222 OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
223 -----------------------------------------------------------------------------
0f74202c 224COMMENT_END
934b03fc 225
40a1495e 226NAME: cache_peer
227TYPE: peer
1273d501 228DEFAULT: none
0153d498 229LOC: Config.peers
934b03fc 230DOC_START
231 To specify other caches in a hierarchy, use the format:
232
6b53c392 233 cache_peer hostname type http_port icp_port
934b03fc 234
d0d41f07 235 For example,
934b03fc 236
237 # proxy icp
238 # hostname type port port options
239 # -------------------- -------- ----- ----- -----------
cf5cc17e 240 cache_peer parent.foo.net parent 3128 3130 [proxy-only]
241 cache_peer sib1.foo.net sibling 3128 3130 [proxy-only]
242 cache_peer sib2.foo.net sibling 3128 3130 [proxy-only]
934b03fc 243
244 type: either 'parent', 'sibling', or 'multicast'.
245
246 proxy_port: The port number where the cache listens for proxy
247 requests.
248
249 icp_port: Used for querying neighbor caches about
250 objects. To have a non-ICP neighbor
251 specify '7' for the ICP port and make sure the
252 neighbor machine has the UDP echo port
253 enabled in its /etc/inetd.conf file.
254
255 options: proxy-only
256 weight=n
257 ttl=n
258 no-query
259 default
260 round-robin
261 multicast-responder
b3264694 262 closest-only
46b034a4 263 no-digest
223213df 264 no-netdb-exchange
95e36d02 265 no-delay
c3b33cb7 266 login=user:password | PASS | *:password
3f62decd 267 connect-timeout=nn
7e3ce7b9 268 digest-url=url
987de783 269 allow-miss
e79a6f05 270 max-conn
934b03fc 271
272 use 'proxy-only' to specify that objects fetched
273 from this cache should not be saved locally.
274
275 use 'weight=n' to specify a weighted parent.
276 The weight must be an integer. The default weight
277 is 1, larger weights are favored more.
278
279 use 'ttl=n' to specify a IP multicast TTL to use
78a0e865 280 when sending an ICP queries to this address.
934b03fc 281 Only useful when sending to a multicast group.
282 Because we don't accept ICP replies from random
283 hosts, you must configure other group members as
284 peers with the 'multicast-responder' option below.
285
286 use 'no-query' to NOT send ICP queries to this
287 neighbor.
288
289 use 'default' if this is a parent cache which can
290 be used as a "last-resort." You should probably
291 only use 'default' in situations where you cannot
292 use ICP with your parent cache(s).
293
294 use 'round-robin' to define a set of parents which
295 should be used in a round-robin fashion in the
296 absence of any ICP queries.
297
298 'multicast-responder' indicates that the named peer
299 is a member of a multicast group. ICP queries will
300 not be sent directly to the peer, but ICP replies
301 will be accepted from it.
302
b3264694 303 'closest-only' indicates that, for ICP_OP_MISS
304 replies, we'll only forward CLOSEST_PARENT_MISSes
305 and never FIRST_PARENT_MISSes.
306
46b034a4 307 use 'no-digest' to NOT request cache digests from
308 this neighbor.
309
223213df 310 'no-netdb-exchange' disables requesting ICMP
311 RTT database (NetDB) from the neighbor.
312
95e36d02 313 use 'no-delay' to prevent access to this neighbor
314 from influencing the delay pools.
315
c68e9c6b 316 use 'login=user:password' if this is a personal/workgroup
317 proxy and your parent requires proxy authentication.
4472c779 318 Note: The string can include URL escapes (i.e. %20 for
319 spaces). This also means that % must be written as %%.
c68e9c6b 320
94439e4e 321 use 'login=PASS' if users must authenticate against
322 the upstream proxy. Note: To combine this with
323 proxy_auth both proxies must share the same user
324 database as HTTP only allows for one proxy login.
325 Also be warned that this will expose your users proxy
326 password to the parent. USE WITH CAUTION
327
c3b33cb7 328 use 'login=*:password' to pass the username to the
329 upstream cache, but with a fixed password. This is meant
330 to be used when the peer is in another administrative
331 domain, but it is still needed to identify each user.
332 The star can optionally be followed by some extra
333 information which is added to the username. This can
334 be used to identify this proxy to the peer, similar to
335 the login=username:password option above.
336
3f62decd 337 use 'connect-timeout=nn' to specify a peer
338 specific connect timeout (also see the
339 peer_connect_timeout directive)
340
7e3ce7b9 341 use 'digest-url=url' to tell Squid to fetch the cache
342 digest (if digests are enabled) for this host from
343 the specified URL rather than the Squid default
344 location.
3f62decd 345
987de783 346 use 'allow-miss' to disable Squid's use of only-if-cached
347 when forwarding requests to siblings. This is primarily
348 useful when icp_hit_stale is used by the sibling. To
349 extensive use of this option may result in forwarding
350 loops, and you should avoid having two-way peerings
351 with this option. (for example to deny peer usage on
352 requests from peer by denying cache_peer_access if the
353 source is a peer)
354
e79a6f05 355 use 'max-conn' to limit the amount of connections Squid
356 may open to this peer.
357
934b03fc 358 NOTE: non-ICP neighbors must be specified as 'parent'.
934b03fc 359DOC_END
360
af7d912e 361NAME: cache_peer_domain cache_host_domain
934b03fc 362TYPE: hostdomain
f1dc9b30 363DEFAULT: none
364LOC: none
934b03fc 365DOC_START
cf5cc17e 366 Use to limit the domains for which a neighbor cache will be
367 queried. Usage:
934b03fc 368
af7d912e 369 cache_peer_domain cache-host domain [domain ...]
370 cache_peer_domain cache-host !domain
934b03fc 371
372 For example, specifying
373
af7d912e 374 cache_peer_domain parent.foo.net .edu
934b03fc 375
376 has the effect such that UDP query packets are sent to
377 'bigserver' only when the requested object exists on a
378 server in the .edu domain. Prefixing the domainname
379 with '!' means that the cache will be queried for objects
380 NOT in that domain.
381
382 NOTE: * Any number of domains may be given for a cache-host,
383 either on the same or separate lines.
384 * When multiple domains are given for a particular
385 cache-host, the first matched domain is applied.
386 * Cache hosts with no domain restrictions are queried
387 for all requests.
388 * There are no defaults.
3794b2b6 389 * There is also a 'cache_peer_access' tag in the ACL
934b03fc 390 section.
391DOC_END
392
393
394NAME: neighbor_type_domain
395TYPE: hostdomaintype
f1dc9b30 396DEFAULT: none
397LOC: none
934b03fc 398DOC_START
399 usage: neighbor_type_domain parent|sibling domain domain ...
400
401 Modifying the neighbor type for specific domains is now
402 possible. You can treat some domains differently than the the
a95856a0 403 default neighbor type specified on the 'cache_peer' line.
934b03fc 404 Normally it should only be necessary to list domains which
405 should be treated differently because the default neighbor type
406 applies for hostnames which do not match domains listed here.
407
408EXAMPLE:
a95856a0 409 cache_peer parent cache.foo.org 3128 3130
934b03fc 410 neighbor_type_domain cache.foo.org sibling .com .net
411 neighbor_type_domain cache.foo.org sibling .au .de
412DOC_END
413
465dc415 414NAME: icp_query_timeout
415COMMENT: (msec)
416DEFAULT: 0
417TYPE: int
418LOC: Config.Timeout.icp_query
934b03fc 419DOC_START
465dc415 420 Normally Squid will automatically determine an optimal ICP
421 query timeout value based on the round-trip-time of recent ICP
422 queries. If you want to override the value determined by
423 Squid, set this 'icp_query_timeout' to a non-zero value. This
424 value is specified in MILLISECONDS, so, to use a 2-second
425 timeout (the old default), you would write:
934b03fc 426
465dc415 427 icp_query_timeout 2000
465dc415 428DOC_END
429
28993292 430NAME: maximum_icp_query_timeout
431COMMENT: (msec)
432DEFAULT: 2000
433TYPE: int
434LOC: Config.Timeout.icp_query_max
435DOC_START
efd900cb 436 Normally the ICP query timeout is determined dynamically. But
437 sometimes it can lead to very large values (say 5 seconds).
438 Use this option to put an upper limit on the dynamic timeout
439 value. Do NOT use this option to always use a fixed (instead
e0d5ba83 440 of a dynamic) timeout value. To set a fixed timeout see the
441 'icp_query_timeout' directive.
28993292 442DOC_END
443
465dc415 444NAME: mcast_icp_query_timeout
445COMMENT: (msec)
446DEFAULT: 2000
447TYPE: int
448LOC: Config.Timeout.mcast_icp_query
449DOC_START
450 For Multicast peers, Squid regularly sends out ICP "probes" to
451 count how many other peers are listening on the given multicast
452 address. This value specifies how long Squid should wait to
453 count all the replies. The default is 2000 msec, or 2
454 seconds.
934b03fc 455DOC_END
456
dc835977 457NAME: dead_peer_timeout
458COMMENT: (seconds)
459DEFAULT: 10 seconds
460TYPE: time_t
461LOC: Config.Timeout.deadPeer
462DOC_START
463 This controls how long Squid waits to declare a peer cache
464 as "dead." If there are no ICP replies received in this
465 amount of time, Squid will declare the peer dead and not
466 expect to receive any further ICP replies. However, it
467 continues to send ICP queries, and will mark the peer as
468 alive upon receipt of the first subsequent ICP reply.
469
a8ad9a81 470 This timeout also affects when Squid expects to receive ICP
471 replies from peers. If more than 'dead_peer' seconds have
472 passed since the last ICP reply was received, Squid will not
473 expect to receive an ICP reply on the next query. Thus, if
474 your time between requests is greater than this timeout, you
475 will see a lot of requests sent DIRECT to origin servers
476 instead of to your parents.
dc835977 477DOC_END
478
934b03fc 479
480NAME: hierarchy_stoplist
481TYPE: wordlist
f8d9f54a 482DEFAULT: none
934b03fc 483LOC: Config.hierarchy_stoplist
484DOC_START
485 A list of words which, if found in a URL, cause the object to
486 be handled directly by this cache. In other words, use this
487 to not query neighbor caches for certain objects. You may
488 list this option multiple times.
6b53c392 489NOCOMMENT_START
490#We recommend you to use at least the following line.
934b03fc 491hierarchy_stoplist cgi-bin ?
6b53c392 492NOCOMMENT_END
934b03fc 493DOC_END
494
495
bd05e3e3 496NAME: no_cache
497TYPE: acl_access
498DEFAULT: none
499LOC: Config.accessList.noCache
934b03fc 500DOC_START
bd05e3e3 501 A list of ACL elements which, if matched, cause the reply to
934b03fc 502 immediately removed from the cache. In other words, use this
bd05e3e3 503 to force certain objects to never be cached.
934b03fc 504
b269cf4e 505 You must use the word 'DENY' to indicate the ACL names which should
506 NOT be cached.
0fdafae7 507
6b53c392 508NOCOMMENT_START
509#We recommend you to use the following two lines.
bd05e3e3 510acl QUERY urlpath_regex cgi-bin \?
b269cf4e 511no_cache deny QUERY
6b53c392 512NOCOMMENT_END
934b03fc 513DOC_END
514
934b03fc 515
0f74202c 516COMMENT_START
3a278cb8 517 OPTIONS WHICH AFFECT THE CACHE SIZE
518 -----------------------------------------------------------------------------
0f74202c 519COMMENT_END
934b03fc 520
521NAME: cache_mem
9906e724 522COMMENT: (bytes)
1b635117 523TYPE: b_size_t
9906e724 524DEFAULT: 8 MB
43a70238 525LOC: Config.memMaxSize
934b03fc 526DOC_START
7b2496ca 527 NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS
528 SIZE. IT PLACES A LIMIT ON ONE ASPECT OF SQUID'S MEMORY
529 USAGE. SQUID USES MEMORY FOR OTHER THINGS AS WELL.
530 YOUR PROCESS WILL PROBABLY BECOME TWICE OR THREE TIMES
531 BIGGER THAN THE VALUE YOU PUT HERE
532
533 'cache_mem' specifies the ideal amount of memory to be used
534 for:
535 * In-Transit objects
536 * Hot Objects
537 * Negative-Cached objects
538
539 Data for these objects are stored in 4 KB blocks. This
540 parameter specifies the ideal upper limit on the total size of
541 4 KB blocks allocated. In-Transit objects take the highest
542 priority.
934b03fc 543
544 In-transit objects have priority over the others. When
545 additional space is needed for incoming data, negative-cached
546 and hot objects will be released. In other words, the
547 negative-cached and hot objects will fill up any unused space
548 not needed for in-transit objects.
549
7b2496ca 550 If circumstances require, this limit will be exceeded.
551 Specifically, if your incoming request rate requires more than
552 'cache_mem' of memory to hold in-transit objects, Squid will
553 exceed this limit to satisfy the new requests. When the load
554 decreases, blocks will be freed until the high-water mark is
555 reached. Thereafter, blocks will be used to store hot
556 objects.
934b03fc 557DOC_END
558
559
560NAME: cache_swap_low
561COMMENT: (percent, 0-100)
562TYPE: int
563DEFAULT: 90
564LOC: Config.Swap.lowWaterMark
565DOC_NONE
566
567NAME: cache_swap_high
568COMMENT: (percent, 0-100)
569TYPE: int
570DEFAULT: 95
571LOC: Config.Swap.highWaterMark
572DOC_START
2b906e48 573
574 The low- and high-water marks for cache object replacement.
575 Replacement begins when the swap (disk) usage is above the
576 low-water mark and attempts to maintain utilization near the
577 low-water mark. As swap utilization gets close to high-water
578 mark object eviction becomes more aggressive. If utilization is
579 close to the low-water mark less replacement is done each time.
580
581 Defaults are 90% and 95%. If you have a large cache, 5% could be
582 hundreds of MB. If this is the case you may wish to set these
583 numbers closer together.
934b03fc 584DOC_END
585
934b03fc 586NAME: maximum_object_size
9e975e4e 587COMMENT: (bytes)
1b635117 588TYPE: b_size_t
9906e724 589DEFAULT: 4096 KB
934b03fc 590LOC: Config.Store.maxObjectSize
591DOC_START
592 Objects larger than this size will NOT be saved on disk. The
cf5cc17e 593 value is specified in kilobytes, and the default is 4MB. If
594 you wish to get a high BYTES hit ratio, you should probably
595 increase this (one 32 MB object hit counts for 3200 10KB
596 hits). If you wish to increase speed more than your want to
597 save bandwidth you should leave this low.
934b03fc 598
2b906e48 599 NOTE: if using the LFUDA replacement policy you should increase
600 this value to maximize the byte hit rate improvement of LFUDA!
601 See replacement_policy below for a discussion of this policy.
934b03fc 602DOC_END
603
d20b1cd0 604NAME: minimum_object_size
605COMMENT: (bytes)
606TYPE: b_size_t
607DEFAULT: 0 KB
608LOC: Config.Store.minObjectSize
609DOC_START
610 Objects smaller than this size will NOT be saved on disk. The
611 value is specified in kilobytes, and the default is 0 KB, which
612 means there is no minimum.
613DOC_END
934b03fc 614
16689110 615NAME: maximum_object_size_in_memory
616COMMENT: (bytes)
617TYPE: b_size_t
618DEFAULT: 8 KB
619LOC: Config.Store.maxInMemObjSize
620DOC_START
621 Objects greater than this size will not be attempted to kept in
622 the memory cache. This should be set high enough to keep objects
623 accessed frequently in memory to improve performance whilst low
624 enough to keep larger objects from hoarding cache_mem .
625DOC_END
626
934b03fc 627NAME: ipcache_size
628COMMENT: (number of entries)
629TYPE: int
630DEFAULT: 1024
631LOC: Config.ipcache.size
632DOC_NONE
633
634NAME: ipcache_low
635COMMENT: (percent)
636TYPE: int
637DEFAULT: 90
638LOC: Config.ipcache.low
639DOC_NONE
640
641NAME: ipcache_high
642COMMENT: (percent)
643TYPE: int
644DEFAULT: 95
645LOC: Config.ipcache.high
646DOC_START
647 The size, low-, and high-water marks for the IP cache.
934b03fc 648DOC_END
649
e55650e3 650NAME: fqdncache_size
651COMMENT: (number of entries)
652TYPE: int
653DEFAULT: 1024
654LOC: Config.fqdncache.size
655DOC_START
656 Maximum number of FQDN cache entries.
e55650e3 657DOC_END
658
6a566b9c 659NAME: cache_replacement_policy
660TYPE: removalpolicy
661LOC: Config.replPolicy
662DEFAULT: lru
663DOC_START
664 The cache replacement policy parameter determines which
665 objects are evicted (replaced) when disk space is needed.
666
667 lru : Squid's original list based LRU policy
668 heap GDSF : Greedy-Dual Size Frequency
669 heap LFUDA: Least Frequently Used with Dynamic Aging
670 heap LRU : LRU policy implemented using a heap
671
672 Applies to any cache_dir lines listed below this.
673
674 The LRU policies keeps recently referenced objects.
675
676 The heap GDSF policy optimizes object hit rate by keeping smaller
677 popular objects in cache so it has a better chance of getting a
678 hit. It achieves a lower byte hit rate than LFUDA though since
679 it evicts larger (possibly popular) objects.
680
681 The heap LFUDA policy keeps popular objects in cache regardless of
682 their size and thus optimizes byte hit rate at the expense of
683 hit rate since one large, popular object will prevent many
684 smaller, slightly less popular objects from being cached.
685
686 Both policies utilize a dynamic aging mechanism that prevents
687 cache pollution that can otherwise occur with frequency-based
688 replacement policies.
689
690 NOTE: if using the LFUDA replacement policy you should increase
691 the value of maximum_object_size above its default of 4096 KB to
692 to maximize the potential byte hit rate improvement of LFUDA.
693
694 For more information about the GDSF and LFUDA cache replacement
695 policies see http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
696 and http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html.
697DOC_END
698
699NAME: memory_replacement_policy
700TYPE: removalpolicy
701LOC: Config.memPolicy
702DEFAULT: lru
703DOC_START
704 The memory replacement policy parameter determines which
705 objects are purged from memory when memory space is needed.
706
707 See cache_replacement_policy for details.
708DOC_END
709
710
0f74202c 711COMMENT_START
3a278cb8 712 LOGFILE PATHNAMES AND CACHE DIRECTORIES
713 -----------------------------------------------------------------------------
0f74202c 714COMMENT_END
934b03fc 715
716NAME: cache_dir
717TYPE: cachedir
f1dc9b30 718DEFAULT: none
8e8d4f30 719DEFAULT_IF_NONE: ufs @DEFAULT_SWAP_DIR@ 100 16 256
f1dc9b30 720LOC: Config.cacheSwap
934b03fc 721DOC_START
cf5cc17e 722 Usage:
723
8e8d4f30 724 cache_dir Type Directory-Name Fs-specific-data [options]
934b03fc 725
1f7c9178 726 cache_dir diskd Maxobjsize Directory-Name MB L1 L2 Q1 Q2
727
934b03fc 728 You can specify multiple cache_dir lines to spread the
729 cache among different disk partitions.
730
efd900cb 731 Type specifies the kind of storage system to use. Most
732 everyone will want to use "ufs" as the type. If you are using
733 Async I/O (--enable async-io) on Linux or Solaris, then you may
4813a665 734 want to try "aufs" as the type. Async IO support may be
efd900cb 735 buggy, however, so beware.
9bc73deb 736
cf5cc17e 737 'Directory' is a top-level directory where cache swap
738 files will be stored. If you want to use an entire disk
739 for caching, then this can be the mount-point directory.
740 The directory must exist and be writable by the Squid
741 process. Squid will NOT create this directory for you.
742
8e8d4f30 743 The ufs store type:
744
745 "ufs" is the old well-known Squid storage format that has always
746 been there.
747
748 cache_dir ufs Directory-Name Mbytes L1 L2 [options]
cf5cc17e 749
750 'Mbytes' is the amount of disk space (MB) to use under this
751 directory. The default is 100 MB. Change this to suit your
752 configuration.
753
754 'Level-1' is the number of first-level subdirectories which
755 will be created under the 'Directory'. The default is 16.
756
757 'Level-2' is the number of second-level subdirectories which
758 will be created under each first-level directory. The default
759 is 256.
d1595b77 760
8e8d4f30 761 The aufs store type:
762
763 "aufs" uses the same storage format as "ufs", utilizing
764 POSIX-threads to avoid blocking the main Squid process on
765 disk-I/O. This was formerly known in Squid as async-io.
766
767 cache_dir aufs Directory-Name Mbytes L1 L2 [options]
768
769 see argument descriptions under ufs above
770
771 The diskd store type:
772
773 "diskd" uses the same storage format as "ufs", utilizing a
774 separate process to avoid blocking the main Squid process on
775 disk-I/O.
776
777 cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
778
779 see argument descriptions under ufs above
780
781 Q1 specifies the number of unacknowledged I/O requests when Squid
782 stops opening new files. If this many messages are in the queues,
783 Squid won't open new files. Default is 64
784
d1595b77 785 Q2 specifies the number of unacknowledged messages when Squid
786 starts blocking. If this many messages are in the queues,
8e8d4f30 787 Squid blocks until it recevies some replies. Default is 72
788
789 Common options:
790
791 read-only, this cache_dir is read only.
792
793 max-size=n, refers to the max object size this storedir supports.
794 It is used to initially choose the storedir to dump the object.
795 Note: To make optimal use of the max-size limits you should order
796 the cache_dir lines with the smallest max-size value first and the
797 ones with no max-size specification last.
934b03fc 798DOC_END
799
800
801NAME: cache_access_log
802TYPE: string
d0b98f84 803DEFAULT: @DEFAULT_ACCESS_LOG@
934b03fc 804LOC: Config.Log.access
805DOC_START
806 Logs the client request activity. Contains an entry for
0eb83825 807 every HTTP and ICP queries received. To disable, enter "none".
934b03fc 808DOC_END
809
810
811NAME: cache_log
812TYPE: string
0153d498 813DEFAULT: @DEFAULT_CACHE_LOG@
934b03fc 814LOC: Config.Log.log
815DOC_START
cf5cc17e 816 Cache logging file. This is where general information about
efd900cb 817 your cache's behavior goes. You can increase the amount of data
cf5cc17e 818 logged to this file with the "debug_options" tag below.
934b03fc 819DOC_END
820
821
822NAME: cache_store_log
823TYPE: string
0153d498 824DEFAULT: @DEFAULT_STORE_LOG@
934b03fc 825LOC: Config.Log.store
826DOC_START
827 Logs the activities of the storage manager. Shows which
828 objects are ejected from the cache, and which objects are
cf5cc17e 829 saved and for how long. To disable, enter "none". There are
efd900cb 830 not really utilities to analyze this data, so you can safely
cf5cc17e 831 disable it.
934b03fc 832DOC_END
833
834
835NAME: cache_swap_log
836TYPE: string
837LOC: Config.Log.swap
1273d501 838DEFAULT: none
934b03fc 839DOC_START
d0d3ec94 840 Location for the cache "swap.log." This log file holds the
934b03fc 841 metadata of objects saved on disk. It is used to rebuild the
a80e50c7 842 cache during startup. Normally this file resides in each
934b03fc 843 'cache_dir' directory, but you may specify an alternate
844 pathname here. Note you must give a full filename, not just
cf5cc17e 845 a directory. Since this is the index for the whole object
846 list you CANNOT periodically rotate it!
934b03fc 847
a80e50c7 848 If %s can be used in the file name then it will be replaced with a
849 a representation of the cache_dir name where each / is replaced
850 with '.'. This is needed to allow adding/removing cache_dir
851 lines when cache_swap_log is being used.
852
853 If have more than one 'cache_dir', and %s is not used in the name
854 then these swap logs will have names such as:
710df4ca 855
856 cache_swap_log.00
857 cache_swap_log.01
858 cache_swap_log.02
859
860 The numbered extension (which is added automatically)
861 corresponds to the order of the 'cache_dir' lines in this
862 configuration file. If you change the order of the 'cache_dir'
863 lines in this file, then these log files will NOT correspond to
864 the correct 'cache_dir' entry (unless you manually rename
865 them). We recommend that you do NOT use this option. It is
866 better to keep these log files in each 'cache_dir' directory.
934b03fc 867DOC_END
868
869
870NAME: emulate_httpd_log
871COMMENT: on|off
872TYPE: onoff
f1dc9b30 873DEFAULT: off
17a0a4ee 874LOC: Config.onoff.common_log
934b03fc 875DOC_START
876 The Cache can emulate the log file format which many 'httpd'
877 programs use. To disable/enable this emulation, set
878 emulate_httpd_log to 'off' or 'on'. The default
cf5cc17e 879 is to use the native log format since it includes useful
efd900cb 880 information that Squid-specific log analyzers use.
934b03fc 881DOC_END
882
890b0fa8 883NAME: log_ip_on_direct
884COMMENT: on|off
885TYPE: onoff
886DEFAULT: on
887LOC: Config.onoff.log_ip_on_direct
888DOC_START
889 Log the destination IP address in the hierarchy log tag when going
890 direct. Earlier Squid versions logged the hostname here. If you
891 prefer the old way set this to off.
890b0fa8 892DOC_END
934b03fc 893
894NAME: mime_table
f0b19334 895TYPE: string
0153d498 896DEFAULT: @DEFAULT_MIME_TABLE@
934b03fc 897LOC: Config.mimeTablePathname
898DOC_START
cf5cc17e 899 Pathname to Squid's MIME table. You shouldn't need to change
900 this, but the default file contains examples and formatting
901 information if you do.
934b03fc 902DOC_END
903
904
905NAME: log_mime_hdrs
906COMMENT: on|off
907TYPE: onoff
17a0a4ee 908LOC: Config.onoff.log_mime_hdrs
f1dc9b30 909DEFAULT: off
934b03fc 910DOC_START
cf5cc17e 911 The Cache can record both the request and the response MIME
912 headers for each HTTP transaction. The headers are encoded
913 safely and will appear as two bracketed fields at the end of
914 the access log (for either the native or httpd-emulated log
915 formats). To enable this logging set log_mime_hdrs to 'on'.
934b03fc 916DOC_END
917
918
919NAME: useragent_log
920TYPE: string
921LOC: Config.Log.useragent
f1dc9b30 922DEFAULT: none
6b53c392 923IFDEF: USE_USERAGENT_LOG
934b03fc 924DOC_START
6b53c392 925 Squid will write the User-Agent field from HTTP requests
926 to the filename specified here. By default useragent_log
927 is disabled.
934b03fc 928DOC_END
929
930
fd2c5549 931NAME: referer_log
932TYPE: string
933LOC: Config.Log.referer
934DEFAULT: none
b81f1cf3 935IFDEF: USE_REFERER_LOG
fd2c5549 936DOC_START
b81f1cf3 937 Squid will write the Referer field from HTTP requests to the
938 filename specified here. By default referer_log is disabled.
fd2c5549 939DOC_END
940
941
934b03fc 942NAME: pid_filename
943TYPE: string
0153d498 944DEFAULT: @DEFAULT_PID_FILE@
934b03fc 945LOC: Config.pidFilename
946DOC_START
d0d41f07 947 A filename to write the process-id to. To disable, enter "none".
934b03fc 948DOC_END
949
950
951NAME: debug_options
f1dc9b30 952TYPE: eol
934b03fc 953DEFAULT: ALL,1
954LOC: Config.debugOptions
955DOC_START
956 Logging options are set as section,level where each source file
957 is assigned a unique section. Lower levels result in less
958 output, Full debugging (level 9) can result in a very large
959 log file, so be careful. The magic word "ALL" sets debugging
960 levels for all sections. We recommend normally running with
961 "ALL,1".
934b03fc 962DOC_END
963
964
934b03fc 965NAME: log_fqdn
966COMMENT: on|off
967TYPE: onoff
f1dc9b30 968DEFAULT: off
17a0a4ee 969LOC: Config.onoff.log_fqdn
934b03fc 970DOC_START
971 Turn this on if you wish to log fully qualified domain names
cf5cc17e 972 in the access.log. To do this Squid does a DNS lookup of all
973 IP's connecting to it. This can (in some situations) increase
974 latency, which makes your cache seem slower for interactive
975 browsing.
934b03fc 976DOC_END
977
978
979NAME: client_netmask
980TYPE: address
981LOC: Config.Addrs.client_netmask
f1dc9b30 982DEFAULT: 255.255.255.255
934b03fc 983DOC_START
984 A netmask for client addresses in logfiles and cachemgr output.
985 Change this to protect the privacy of your cache clients.
cf5cc17e 986 A netmask of 255.255.255.0 will log all IP's in that range with
987 the last digit set to '0'.
934b03fc 988DOC_END
989
990
0f74202c 991COMMENT_START
3a278cb8 992 OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
993 -----------------------------------------------------------------------------
0f74202c 994COMMENT_END
934b03fc 995
934b03fc 996NAME: ftp_user
997TYPE: string
cf5cc17e 998DEFAULT: Squid@
934b03fc 999LOC: Config.Ftp.anon_user
1000DOC_START
1001 If you want the anonymous login password to be more informative
1002 (and enable the use of picky ftp servers), set this to something
efd900cb 1003 reasonable for your domain, like wwwuser@somewhere.net
934b03fc 1004
1005 The reason why this is domainless by default is that the
1006 request can be made on the behalf of a user in any domain,
1007 depending on how the cache is used.
1008 Some ftp server also validate that the email address is valid
1009 (for example perl.com).
934b03fc 1010DOC_END
1011
365cb147 1012NAME: ftp_list_width
1b635117 1013TYPE: size_t
365cb147 1014DEFAULT: 32
1015LOC: Config.Ftp.list_width
1016DOC_START
cf5cc17e 1017 Sets the width of ftp listings. This should be set to fit in
1018 the width of a standard browser. Setting this too small
1019 can cut off long filenames when browsing ftp sites.
365cb147 1020DOC_END
1021
d20b1cd0 1022NAME: ftp_passive
1023TYPE: onoff
1024DEFAULT: on
1025LOC: Config.Ftp.passive
1026DOC_START
1027 If your firewall does not allow Squid to use passive
1028 connections, then turn off this option.
1029DOC_END
1030
934b03fc 1031NAME: cache_dns_program
f0b19334 1032TYPE: string
589c90de 1033IFDEF: USE_DNSSERVERS
0153d498 1034DEFAULT: @DEFAULT_DNSSERVER@
934b03fc 1035LOC: Config.Program.dnsserver
1036DOC_START
1037 Specify the location of the executable for dnslookup process.
934b03fc 1038DOC_END
1039
934b03fc 1040NAME: dns_children
1041TYPE: int
6b53c392 1042IFDEF: USE_DNSSERVERS
934b03fc 1043DEFAULT: 5
1044LOC: Config.dnsChildren
1045DOC_START
1046 The number of processes spawn to service DNS name lookups.
1047 For heavily loaded caches on large servers, you should
1048 probably increase this value to at least 10. The maximum
1049 is 32. The default is 5.
1050
efd900cb 1051 You must have at least one dnsserver process.
934b03fc 1052DOC_END
1053
4fe0e1d0 1054NAME: dns_retransmit_interval
1055TYPE: time_t
1056DEFAULT: 5 seconds
1057LOC: Config.Timeout.idns_retransmit
1058IFDEF: !USE_DNSSERVERS
1059DOC_START
1060 Initial retransmit interval for DNS queries. The interval is
1061 doubled each time all configured DNS servers have been tried.
1062
1063DOC_END
1064
1065NAME: dns_timeout
1066TYPE: time_t
1067DEFAULT: 5 minutes
1068LOC: Config.Timeout.idns_query
1069IFDEF: !USE_DNSSERVERS
1070DOC_START
1071 DNS Query timeout. If no response is received to a DNS query
1072 within this time then all DNS servers for the queried domain
1073 is assumed to be unavailable.
1074DOC_END
934b03fc 1075
1076NAME: dns_defnames
1077COMMENT: on|off
589c90de 1078IFDEF: USE_DNSSERVERS
934b03fc 1079TYPE: onoff
f1dc9b30 1080DEFAULT: off
17a0a4ee 1081LOC: Config.onoff.res_defnames
6b53c392 1082IFDEF: USE_DNSSERVERS
934b03fc 1083DOC_START
1084 Normally the 'dnsserver' disables the RES_DEFNAMES resolver
1085 option (see res_init(3)). This prevents caches in a hierarchy
1086 from interpreting single-component hostnames locally. To allow
1087 dnsserver to handle single-component names, enable this
1088 option.
934b03fc 1089DOC_END
1090
09c483ec 1091NAME: dns_nameservers
1092TYPE: wordlist
1093DEFAULT: none
1094LOC: Config.dns_nameservers
1095DOC_START
1096 Use this if you want to specify a list of DNS name servers
1097 (IP addresses) to use instead of those given in your
1098 /etc/resolv.conf file.
1099
1100 Example: dns_nameservers 10.0.0.1 192.172.0.4
09c483ec 1101DOC_END
1102
0e70aa1e 1103NAME: hosts_file
1104TYPE: string
1105DEFAULT: /etc/hosts
1106LOC: Config.etcHostsPath
1107DOC_START
1108 Location of the host-local IP name-address associations
1109 database. Most Operating Systems have such a file: under
1110 Un*X it's by default in /etc/hosts MS-Windows NT/2000 places
1111 that in %SystemRoot%(by default
1112 c:\winnt)\system32\drivers\etc\hosts, while Windows 9x/ME
1113 places that in %windir%(usually c:\windows)\hosts
1114
1115 The file contains newline-separated definitions, in the
1116 form ip_address_in_dotted_form name [name ...] names are
1117 whitespace-separated. lines beginnng with an hash (#)
1118 character are comments.
1119
1120 The file is checked at startup and upon configuration. If
1121 set to 'none', it won't be checked. If append_domain is
1122 used, that domain will be added to domain-local (i.e. not
1123 containing any dot character) host definitions.
1124DOC_END
934b03fc 1125
be7d89d4 1126NAME: diskd_program
1127TYPE: string
1128DEFAULT: @DEFAULT_DISKD@
1129LOC: Config.Program.diskd
1130DOC_START
1131 Specify the location of the diskd executable.
1132 Note that this is only useful if you have compiled in
1133 diskd as one of the store io modules.
1134DOC_END
1135
934b03fc 1136NAME: unlinkd_program
a3d0a19d 1137IFDEF: USE_UNLINKD
f0b19334 1138TYPE: string
0153d498 1139DEFAULT: @DEFAULT_UNLINKD@
934b03fc 1140LOC: Config.Program.unlinkd
1141DOC_START
1142 Specify the location of the executable for file deletion process.
934b03fc 1143DOC_END
1144
934b03fc 1145NAME: pinger_program
a95856a0 1146TYPE: string
0153d498 1147DEFAULT: @DEFAULT_PINGER@
934b03fc 1148LOC: Config.Program.pinger
6b53c392 1149IFDEF: USE_ICMP
934b03fc 1150DOC_START
1151 Specify the location of the executable for the pinger process.
d20b1cd0 1152 This is only useful if you configured Squid (during compilation)
1153 with the '--enable-icmp' option.
934b03fc 1154DOC_END
1155
1156
1157NAME: redirect_program
c6d5b87b 1158TYPE: wordlist
934b03fc 1159LOC: Config.Program.redirect
62607543 1160DEFAULT: none
934b03fc 1161DOC_START
1162 Specify the location of the executable for the URL redirector.
cf5cc17e 1163 Since they can perform almost any function there isn't one included.
1164 See the Release-Notes for information on how to write one.
1165 By default, a redirector is not used.
934b03fc 1166DOC_END
1167
1168
1169NAME: redirect_children
1170TYPE: int
1171DEFAULT: 5
1172LOC: Config.redirectChildren
1173DOC_START
cf5cc17e 1174 The number of redirector processes to spawn. If you start
1175 too few Squid will have to wait for them to process a backlog of
1176 URLs, slowing it down. If you start too many they will use RAM
1177 and other system resources.
934b03fc 1178DOC_END
1179
c68e9c6b 1180NAME: redirect_rewrites_host_header
1181TYPE: onoff
1182DEFAULT: on
1183LOC: Config.onoff.redir_rewrites_host
1184DOC_START
7e3ce7b9 1185 By default Squid rewrites any Host: header in redirected
1186 requests. If you are running a accelerator then this may
1187 not be a wanted effect of a redirector.
c68e9c6b 1188DOC_END
1189
9bc73deb 1190NAME: redirector_access
1191TYPE: acl_access
1192DEFAULT: none
1193LOC: Config.accessList.redirector
1194DOC_START
1195 If defined, this access list specifies which requests are
1196 sent to the redirector processes. By default all requests
1197 are sent.
1198DOC_END
1199
94439e4e 1200NAME: auth_param
1201TYPE: authparam
1202LOC: Config.authConfig
73e67ee0 1203DEFAULT: none
1204DOC_START
94439e4e 1205 This is used to pass parameters to the various authentication
1206 schemes.
1207 format: auth_param scheme parameter [setting]
1208
1209 auth_param basic program @DEFAULT_PREFIX@/bin/ncsa_auth @DEFAULT_PREFIX@/etc/passwd
1210 would tell the basic authentication scheme it's program parameter.
1211
1212 The order that authentication prompts are presented to the client_agent
1213 is dependant on the order the scheme first appears in config file.
1214 IE has a bug (it's not rfc 2617 compliant) in that it will use the basic
1215 scheme if basic is the first entry presented, even if more secure schemes
1216 are presented. For now use the order in the file below. If other browsers
1217 have difficulties (don't recognise the schemes offered even if you are using
1218 basic) then either put basic first, or disable the other schemes (by commenting
1219 out their program entry).
1220
2d70df72 1221 Once an authentication scheme is fully configured, it can only be shutdown
1222 by shutting squid down and restarting. Changes can be made on the fly and
1223 activated with a reconfigure. I.E. You can change to a different helper,
1224 but not unconfigure the helper completely.
1225
94439e4e 1226 === Parameters for the basic scheme follow. ===
1227
1228 "program" cmdline
6c20b822 1229 Specify the command for the external authenticator. Such a
1230 program reads a line containing "username password" and replies
1231 "OK" or "ERR" in an endless loop. If you use an authenticator,
1232 make sure you have 1 acl of type proxy_auth. By default, the
94439e4e 1233 authenticate_program is not used.
73e67ee0 1234
6c20b822 1235 If you want to use the traditional proxy authentication,
1236 jump over to the ../auth_modules/NCSA directory and
1237 type:
1238 % make
1239 % make install
73e67ee0 1240
6c20b822 1241 Then, set this line to something like
73e67ee0 1242
94439e4e 1243 auth_param basic program @DEFAULT_PREFIX@/bin/ncsa_auth @DEFAULT_PREFIX@/etc/passwd
73e67ee0 1244
94439e4e 1245 "children" numberofchildren
1246 The number of authenticator processes to spawn (no default). If you
73e67ee0 1247 start too few Squid will have to wait for them to process a backlog
1248 of usercode/password verifications, slowing it down. When password
1249 verifications are done via a (slow) network you are likely to need
1250 lots of authenticator processes.
94439e4e 1251 auth_param basic children 5
1252
1253 "realm" realmstring
1254 Specifies the realm name which is to be reported to the client for
1255 the basic proxy authentication scheme (part of the text the user will
1256 see when prompted their username and password). Their is no default.
1257 auth_param basic realm Squid proxy-caching web server
1258
1259 "credentialsttl" timetolive
1260 Specifies how long squid assumes an externally validated username:password
1261 pair is valid for - in other words how often the helper program is called
1262 for that user. Set this low to force revalidation with short lived passwords.
1263 Note that setting this high does not impact your susceptability to replay
1264 attacks unless you are using a one-time password system (such as SecureID).
1265 If you are using such a system, you will be vulnerable to replay attacks
1266 unless you also enable the IP ttl is strict option.
1267
2d70df72 1268 === Parameters for the digest scheme follow ===
1269
1270 "program" cmdline
1271 Specify the command for the external authenticator. Such a
1272 program reads a line containing "username":"realm" and replies
1273 with the appropriate H(A1) value base64 encoded. See rfc 2616 for
1274 the definition of H(A1). If you use an authenticator,
1275 make sure you have 1 acl of type proxy_auth. By default,
1276 authentication is not used.
1277
1278 If you want to use build a authenticator,
1279 jump over to the ../digest_auth_modules directory and choose the
1280 authenticator to use. It it's directory type
1281 % make
1282 % make install
1283
1284 Then, set this line to something like
1285
1286 auth_param digest program @DEFAULT_PREFIX@/bin/digest_auth_pw @DEFAULT_PREFIX@/etc/digpass
1287
1288
1289 "children" numberofchildren
1290 The number of authenticator processes to spawn (no default). If you
1291 start too few Squid will have to wait for them to process a backlog
1292 of H(A1) calculations, slowing it down. When the H(A1) calculations
1293 are done via a (slow) network you are likely to need lots of
1294 authenticator processes.
1295 auth_param digest children 5
1296
1297 "realm" realmstring
1298 Specifies the realm name which is to be reported to the client for
1299 the digest proxy authentication scheme (part of the text the user will
1300 see when prompted their username and password). There is no default.
1301 auth_param digest realm Squid proxy-caching web server
1302
1303 "nonce_garbage_interval" timeinterval
1304 Specifies the interval that nonces that have been issued to client_agent's
1305 are checked for validity.
1306
1307 "nonce_max_duration" timeinterval
1308 Specifies the maximum length of time a given nonce will be valid for.
1309
1310 "nonce_max_count" number
1311 Specifies the maximum number of times a given nonce can be used.
1312
94439e4e 1313 === NTLM scheme options follow ===
1314
1315 "program" cmdline
1316 Specify the command for the external ntlm authenticator. Such a
1317 program reads a line containing the uuencoded NEGOTIATE and replies
1318 with the ntlm CHALLENGE, then waits for the response and answers with
1319 "OK" or "ERR" in an endless loop. If you use an ntlm authenticator,
1320 make sure you have 1 acl of type proxy_auth. By default, the
1321 ntlm authenticator_program is not used.
1322
1323 auth_param ntlm program @DEFAULT_PREFIX@/bin/ntlm_auth
1324
1325 "children" numberofchildren
1326 The number of authenticator processes to spawn (no default). If you
1327 start too few Squid will have to wait for them to process a backlog
1328 of credential verifications, slowing it down. When crendential
1329 verifications are done via a (slow) network you are likely to need
1330 lots of authenticator processes.
1331 auth_param ntlm children 5
1332
1333 "max_challenge_reuses" number
1334 The maximum number of times a challenge given by a ntlm authentication
1335 helper can be reused. Increasing this number increases your exposure
1336 to replay attacks on your network. 0 means use the challenge only once.
1337 (disable challenge caching)
1338 See max_ntlm_challenge_lifetime for more information.
1339 auth_param ntlm max_challenge_reuses 0
1340
1341 "max_challenge_lifetime" timespan
1342 The maximum time period that a ntlm challenge is reused over.
1343 The actual period will be the minimum of this time AND the number of
1344 reused challenges.
1345 auth_param ntlm max_challenge_lifetime 2 minutes
1346
1347NOCOMMENT_START
1348#Recommended minimum configuration:
2d70df72 1349#auth_param digest program <uncomment and complete this line>
1350#auth_param digest children 5
1351#auth_param digest realm Squid proxy-caching web server
1352#auth_param digest nonce_garbage_interval 5 minutes
1353#auth_param digest nonce_max_duration 30 minutes
1354#auth_param digest nonce_max_count 50
94439e4e 1355#auth_param ntlm program <uncomment and complete this line to activate>
2d70df72 1356#auth_param ntlm children 5
1357#auth_param ntlm max_challenge_reuses 0
1358#auth_param ntlm max_challenge_lifetime 2 minutes
94439e4e 1359#auth_param basic program <uncomment and complete this line>
1360auth_param basic children 5
1361auth_param basic realm Squid proxy-caching web server
1362auth_param basic credentialsttl 2 hours
1363NOCOMMENT_END
1364DOC_END
1365
1366NAME: authenticate_cache_garbage_interval
1367TYPE: time_t
1368DEFAULT: 1 hour
1369LOC: Config.authenticateGCInterval
1370DOC_START
1371 The time period between garbage collection across the username cache.
1372 This is a tradeoff between memory utilisation (long intervals - say
1373 2 days) and CPU (short intervals - say 1 minute). Only change if
1374 you have good reason to.
73e67ee0 1375DOC_END
1376
c68e9c6b 1377NAME: authenticate_ttl
70a76033 1378TYPE: time_t
1379DEFAULT: 1 hour
c68e9c6b 1380LOC: Config.authenticateTTL
1381DOC_START
94439e4e 1382 The time a user & their credentials stay in the logged in user cache
1383 since their last request. When the garbage interval passes, all
1384 user credentials that have passed their TTL are removed from memory.
c68e9c6b 1385DOC_END
1386
9bc73deb 1387NAME: authenticate_ip_ttl
70a76033 1388TYPE: time_t
9bc73deb 1389LOC: Config.authenticateIpTTL
70a76033 1390DEFAULT: 0 seconds
9bc73deb 1391DOC_START
1392 With this option you control how long a proxy authentication
1393 will be bound to a specific IP address. If a request using
1394 the same user name is received during this time then access
1395 will be denied and both users are required to reauthenticate
1396 them selves. The idea behind this is to make it annoying
1397 for people to share their password to their friends, but
1398 yet allow a dialup user to reconnect on a different dialup
1399 port.
1400
1401 The default is 0 to disable the check. Recommended value
70a76033 1402 if you have dialup users are no more than 60 seconds to allow
1403 the user to redial without hassle. If all your users are
1404 stationary then higher values may be used.
1405
1406 See also authenticate_ip_ttl_is_strict
1407DOC_END
1408
1409NAME: authenticate_ip_ttl_is_strict
1410TYPE: onoff
1411LOC: Config.onoff.authenticateIpTTLStrict
1412DEFAULT: on
1413DOC_START
94439e4e 1414 This option makes authenticate_ip_ttl a bit stricter. With this
70a76033 1415 enabled authenticate_ip_ttl will deny all access from other IP
1416 addresses until the TTL has expired, and the IP address "owning"
1417 the userid will not be forced to reauthenticate.
9bc73deb 1418DOC_END
1419
0f74202c 1420COMMENT_START
3a278cb8 1421 OPTIONS FOR TUNING THE CACHE
1422 -----------------------------------------------------------------------------
0f74202c 1423COMMENT_END
934b03fc 1424
0153d498 1425NAME: wais_relay_host
1426TYPE: string
1273d501 1427DEFAULT: none
0153d498 1428LOC: Config.Wais.relayHost
1429DOC_NONE
934b03fc 1430
0153d498 1431NAME: wais_relay_port
1432TYPE: ushort
1433DEFAULT: 0
1434LOC: Config.Wais.relayPort
934b03fc 1435DOC_START
1436 Relay WAIS request to host (1st arg) at port (2 arg).
934b03fc 1437DOC_END
1438
1439
0483b991 1440NAME: request_header_max_size
1441COMMENT: (KB)
1442TYPE: b_size_t
1443DEFAULT: 10 KB
1444LOC: Config.maxRequestHeaderSize
1445DOC_START
1446 This specifies the maximum size for HTTP headers in a request.
1447 Request headers are usually relatively small (about 512 bytes).
1448 Placing a limit on the request header size will catch certain
1449 bugs (for example with persistent connections) and possibly
1450 buffer-overflow or denial-of-service attacks.
0483b991 1451DOC_END
1452
1453NAME: request_body_max_size
9906e724 1454COMMENT: (KB)
518da0bd 1455TYPE: b_size_t
1f38f50a 1456DEFAULT: 1 MB
0483b991 1457LOC: Config.maxRequestBodySize
934b03fc 1458DOC_START
0483b991 1459 This specifies the maximum size for an HTTP request body.
1460 In other words, the maximum size of a PUT/POST request.
1461 A user who attempts to send a request with a body larger
1462 than this limit receives an "Invalid Request" error message.
1463 If you set this parameter to a zero, there will be no limit
1464 imposed.
0483b991 1465DOC_END
934b03fc 1466
934b03fc 1467NAME: refresh_pattern
934b03fc 1468TYPE: refreshpattern
f1dc9b30 1469LOC: Config.Refresh
1273d501 1470DEFAULT: none
6b53c392 1471DEFAULT_IF_NONE: ^ftp: 1440 20% 10080
1472DEFAULT_IF_NONE: ^gopher: 1440 0% 1440
1473DEFAULT_IF_NONE: . 0 20% 4320
934b03fc 1474DOC_START
7ddc902f 1475 usage: refresh_pattern [-i] regex min percent max [options]
1476
1477 By default, regular expressions are CASE-SENSITIVE. To make
1478 them case-insensitive, use the -i option.
934b03fc 1479
7e3ce7b9 1480 'Min' is the time (in minutes) an object without an explicit
1481 expiry time should be considered fresh. The recommended
1482 value is 0, any higher values may cause dynamic applications
efd900cb 1483 to be erroneously cached unless the application designer
7e3ce7b9 1484 has taken the appropriate actions.
1485
1486 'Percent' is a percentage of the objects age (time since last
efd900cb 1487 modification age) an object without explicit expiry time
7e3ce7b9 1488 will be considered fresh.
1489
1490 'Max' is an upper limit on how long objects without an explicit
1491 expiry time will be considered fresh.
934b03fc 1492
7e3ce7b9 1493 options: overrsde-expire
1dfa1d81 1494 override-lastmod
cbe3a719 1495 reload-into-ims
1496 ignore-reload
1dfa1d81 1497
1498 override-expire enforces min age even if the server
cbe3a719 1499 sent a Expires: header. Doing this VIOLATES the HTTP
1500 standard. Enabling this feature could make you liable
1501 for problems which it causes.
1dfa1d81 1502
1503 override-lastmod enforces min age even on objects
1504 that was modified recently.
cbe3a719 1505
1506 reload-into-ims changes client no-cache or ``reload''
1507 to If-Modified-Since requests. Doing this VIOLATES the
1508 HTTP standard. Enabling this feature could make you
1509 liable for problems which it causes.
1510
1511 ignore-reload ignores a client no-cache or ``reload''
1512 header. Doing this VIOLATES the HTTP standard. Enabling
1513 this feature could make you liable for problems which
1514 it causes.
1dfa1d81 1515
934b03fc 1516 Please see the file doc/Release-Notes-1.1.txt for a full
1517 description of Squid's refresh algorithm. Basically a
1dfa1d81 1518 cached object is: (the order is changed from 1.1.X)
934b03fc 1519
1dfa1d81 1520 FRESH if expires < now, else STALE
6b8e7481 1521 STALE if age > max
1dfa1d81 1522 FRESH if lm-factor < percent, else STALE
1523 FRESH if age < min
1524 else STALE
934b03fc 1525
1526 The refresh_pattern lines are checked in the order listed here.
1527 The first entry which matches is used. If none of the entries
1528 match, then the default will be used.
1529
6b53c392 1530 Note, you must uncomment all the default lines if you want
1531 to change one. The default setting is only active if none is
1532 used.
934b03fc 1533DOC_END
1534
934b03fc 1535NAME: reference_age
f1dc9b30 1536TYPE: time_t
934b03fc 1537LOC: Config.referenceAge
f1dc9b30 1538DEFAULT: 1 year
934b03fc 1539DOC_START
1540 As a part of normal operation, Squid performs Least Recently
1541 Used removal of cached objects. The LRU age for removal is
1542 computed dynamically, based on the amount of disk space in
6778c757 1543 use. The dynamic value can be seen in the Cache Manager 'info'
1544 output.
1545
1546 The 'reference_age' parameter defines the maximum LRU age. For
1547 example, setting reference_age to '1 week' will cause objects
1548 to be removed if they have not been accessed for a week or
7e3ce7b9 1549 more. The default value is one year.
934b03fc 1550
1551 Specify a number here, followed by units of time. For example:
1552 1 week
1553 3.5 days
1554 4 months
1555 2.2 hours
1556
2b906e48 1557 NOTE: this parameter is not used when using the enhanced
1558 replacement policies, GDSH or LFUDA.
934b03fc 1559DOC_END
1560
1561
0153d498 1562NAME: quick_abort_min
9906e724 1563COMMENT: (KB)
1564TYPE: kb_size_t
c68e9c6b 1565DEFAULT: 16 KB
0153d498 1566LOC: Config.quickAbort.min
1567DOC_NONE
1568
0153d498 1569NAME: quick_abort_max
9906e724 1570COMMENT: (KB)
1571TYPE: kb_size_t
6b53c392 1572DEFAULT: 16 KB
0153d498 1573LOC: Config.quickAbort.max
1b2f5c2f 1574DOC_NONE
1575
1576NAME: quick_abort_pct
1577COMMENT: (percent)
1578TYPE: int
c68e9c6b 1579DEFAULT: 95
1b2f5c2f 1580LOC: Config.quickAbort.pct
934b03fc 1581DOC_START
cf5cc17e 1582 The cache can be configured to continue downloading aborted
1583 requests. This may be undesirable on slow (e.g. SLIP) links
1584 and/or very busy caches. Impatient users may tie up file
1585 descriptors and bandwidth by repeatedly requesting and
1586 immediately aborting downloads.
934b03fc 1587
1588 When the user aborts a request, Squid will check the
1589 quick_abort values to the amount of data transfered until
1590 then.
1591
cf5cc17e 1592 If the transfer has less than 'quick_abort_min' KB remaining,
1593 it will finish the retrieval. Setting 'quick_abort_min' to -1
1594 will disable the quick_abort feature.
934b03fc 1595
cf5cc17e 1596 If the transfer has more than 'quick_abort_max' KB remaining,
1597 it will abort the retrieval.
934b03fc 1598
1b2f5c2f 1599 If more than 'quick_abort_pct' of the transfer has completed,
1600 it will finish the retrieval.
934b03fc 1601DOC_END
1602
1603
1604NAME: negative_ttl
bc0eb004 1605COMMENT: time-units
f1dc9b30 1606TYPE: time_t
934b03fc 1607LOC: Config.negativeTtl
9e975e4e 1608DEFAULT: 5 minutes
934b03fc 1609DOC_START
1610 Time-to-Live (TTL) for failed requests. Certain types of
1611 failures (such as "connection refused" and "404 Not Found") are
cf5cc17e 1612 negatively-cached for a configurable amount of time. The
1613 default is 5 minutes. Note that this is different from
1614 negative caching of DNS lookups.
934b03fc 1615DOC_END
1616
1617
1618NAME: positive_dns_ttl
bc0eb004 1619COMMENT: time-units
f1dc9b30 1620TYPE: time_t
934b03fc 1621LOC: Config.positiveDnsTtl
9e975e4e 1622DEFAULT: 6 hours
934b03fc 1623DOC_START
1624 Time-to-Live (TTL) for positive caching of successful DNS lookups.
1625 Default is 6 hours (360 minutes). If you want to minimize the
1626 use of Squid's ipcache, set this to 1, not 0.
934b03fc 1627DOC_END
1628
1629
1630NAME: negative_dns_ttl
bc0eb004 1631COMMENT: time-units
f1dc9b30 1632TYPE: time_t
934b03fc 1633LOC: Config.negativeDnsTtl
9e975e4e 1634DEFAULT: 5 minutes
934b03fc 1635DOC_START
1636 Time-to-Live (TTL) for negative caching of failed DNS lookups.
934b03fc 1637DOC_END
1638
c68e9c6b 1639NAME: range_offset_limit
1640COMMENT: (bytes)
1641TYPE: b_size_t
1642LOC: Config.rangeOffsetLimit
1643DEFAULT: 0 KB
1644DOC_START
1645 Sets a upper limit on how far into the the file a Range request
1646 may be to cause Squid to prefetch the whole file. If beyond this
1647 limit then Squid forwards the Range request as it is and the result
1648 is NOT cached.
1649
1650 This is to stop a far ahead range request (lets say start at 17MB)
1651 from making Squid fetch the whole object up to that point before
1652 sending anything to the client.
1653
1654 A value of -1 causes Squid to always fetch the object from the
1655 beginning so that it may cache the result. (2.0 style)
1656
6e7dbcbd 1657 A value of 0 causes Squid to never fetch more than the
c68e9c6b 1658 client requested. (default)
c68e9c6b 1659DOC_END
1660
1661
0f74202c 1662COMMENT_START
3a278cb8 1663 TIMEOUTS
1664 -----------------------------------------------------------------------------
0f74202c 1665COMMENT_END
934b03fc 1666
1667NAME: connect_timeout
bc0eb004 1668COMMENT: time-units
f1dc9b30 1669TYPE: time_t
934b03fc 1670LOC: Config.Timeout.connect
9e975e4e 1671DEFAULT: 2 minutes
934b03fc 1672DOC_START
1673 Some systems (notably Linux) can not be relied upon to properly
cf5cc17e 1674 time out connect(2) requests. Therefore the Squid process
934b03fc 1675 enforces its own timeout on server connections. This parameter
1676 specifies how long to wait for the connect to complete. The
1677 default is two minutes (120 seconds).
934b03fc 1678DOC_END
1679
3f62decd 1680NAME: peer_connect_timeout
1681COMMENT: time-units
1682TYPE: time_t
1683LOC: Config.Timeout.peer_connect
1684DEFAULT: 30 seconds
1685DOC_START
1686 This parameter specifies how long to wait for a pending TCP
1687 connection to a peer cache. The default is 30 seconds. You
1688 may also set different timeout values for individual neighbors
1689 with the 'connect-timeout' option on a 'cache_peer' line.
9bc73deb 1690DOC_END
3f62decd 1691
23d92c64 1692NAME: siteselect_timeout
1693COMMENT: time-units
1694TYPE: time_t
1695LOC: Config.Timeout.siteSelect
1696DEFAULT: 4 seconds
1697DOC_START
1698 For URN to multiple URL's URL selection
23d92c64 1699DOC_END
934b03fc 1700
1701NAME: read_timeout
bc0eb004 1702COMMENT: time-units
f1dc9b30 1703TYPE: time_t
934b03fc 1704LOC: Config.Timeout.read
9e975e4e 1705DEFAULT: 15 minutes
934b03fc 1706DOC_START
1707 The read_timeout is applied on server-side connections. After
1708 each successful read(), the timeout will be extended by this
1709 amount. If no data is read again after this amount of time,
1710 the request is aborted and logged with ERR_READ_TIMEOUT. The
1711 default is 15 minutes.
934b03fc 1712DOC_END
1713
1714
934b03fc 1715NAME: request_timeout
f1dc9b30 1716TYPE: time_t
934b03fc 1717LOC: Config.Timeout.request
9e975e4e 1718DEFAULT: 30 seconds
934b03fc 1719DOC_START
1720 How long to wait for an HTTP request after connection
1721 establishment. For persistent connections, wait this long
1722 after the previous request completes.
934b03fc 1723DOC_END
1724
1725
1726NAME: client_lifetime
bc0eb004 1727COMMENT: time-units
f1dc9b30 1728TYPE: time_t
934b03fc 1729LOC: Config.Timeout.lifetime
9e975e4e 1730DEFAULT: 1 day
934b03fc 1731DOC_START
1732 The maximum amount of time that a client (browser) is allowed to
1733 remain connected to the cache process. This protects the Cache
efd900cb 1734 from having a lot of sockets (and hence file descriptors) tied up
934b03fc 1735 in a CLOSE_WAIT state from remote clients that go away without
1736 properly shutting down (either because of a network failure or
1737 because of a poor client implementation). The default is one
1738 day, 1440 minutes.
1739
1740 NOTE: The default value is intended to be much larger than any
1741 client would ever need to be connected to your cache. You
1742 should probably change client_lifetime only as a last resort.
1743 If you seem to have many client connections tying up
1744 filedescriptors, we recommend first tuning the read_timeout,
0fbcf3c7 1745 request_timeout, pconn_timeout and quick_abort values.
934b03fc 1746DOC_END
1747
ea285003 1748NAME: half_closed_clients
1749TYPE: onoff
1750LOC: Config.onoff.half_closed_clients
1751DEFAULT: on
1752DOC_START
1753 Some clients may shutdown the sending side of their TCP
1754 connections, while leaving their receiving sides open. Sometimes,
1755 Squid can not tell the difference between a half-closed and a
1756 fully-closed TCP connection. By default, half-closed client
1757 connections are kept open until a read(2) or write(2) on the
1758 socket returns an error. Change this option to 'off' and Squid
1759 will immediately close client connections when read(2) returns
1760 "no more data to read."
ea285003 1761DOC_END
1762
603a02fd 1763NAME: pconn_timeout
1764TYPE: time_t
1765LOC: Config.Timeout.pconn
1766DEFAULT: 120 seconds
1767DOC_START
1768 Timeout for idle persistent connections to servers and other
1769 proxies.
603a02fd 1770DOC_END
1771
05832ae1 1772NAME: ident_timeout
1773TYPE: time_t
3898f57f 1774IFDEF: USE_IDENT
05832ae1 1775LOC: Config.Timeout.ident
1776DEFAULT: 10 seconds
1777DOC_START
1778 Maximum time to wait for IDENT requests. If this is too high,
1779 and you enabled 'ident_lookup', then you might be susceptible
1780 to denial-of-service by having many ident requests going at
1781 once.
6b8e7481 1782
9bc73deb 1783 Only src type ACL checks are fully supported. A src_domain
1784 ACL might work at times, but it will not always provide
1785 the correct result.
1786
6b8e7481 1787 This option may be disabled by using --disable-ident with
1788 the configure script.
05832ae1 1789DOC_END
1790
934b03fc 1791
1792NAME: shutdown_lifetime
bc0eb004 1793COMMENT: time-units
f1dc9b30 1794TYPE: time_t
934b03fc 1795LOC: Config.shutdownLifetime
9e975e4e 1796DEFAULT: 30 seconds
934b03fc 1797DOC_START
1798 When SIGTERM or SIGHUP is received, the cache is put into
1799 "shutdown pending" mode until all active sockets are closed.
1800 This value is the lifetime to set for all open descriptors
1801 during shutdown mode. Any active clients after this many
1802 seconds will receive a 'timeout' message.
934b03fc 1803DOC_END
1804
0f74202c 1805COMMENT_START
3a278cb8 1806 ACCESS CONTROLS
1807 -----------------------------------------------------------------------------
0f74202c 1808COMMENT_END
934b03fc 1809
1810NAME: acl
1811TYPE: acl
f1dc9b30 1812LOC: Config.aclList
1813DEFAULT: none
934b03fc 1814DOC_START
1815 Defining an Access List
1816
1817 acl aclname acltype string1 ...
1818 acl aclname acltype "file" ...
1819
1820 when using "file", the file should contain one item per line
1821
1822 acltype is one of src dst srcdomain dstdomain url_pattern
1823 urlpath_pattern time port proto method browser user
1824
edd80fbb 1825 By default, regular expressions are CASE-SENSITIVE. To make
1826 them case-insensitive, use the -i option.
1827
934b03fc 1828 acl aclname src ip-address/netmask ... (clients IP address)
1829 acl aclname src addr1-addr2/netmask ... (range of addresses)
1830 acl aclname dst ip-address/netmask ... (URL host's IP address)
ae2c08a2 1831 acl aclname myip ip-address/netmask ... (local socket IP address)
d0d41f07 1832
efd900cb 1833 acl aclname srcdomain .foo.com ... # reverse lookup, client IP
1834 acl aclname dstdomain .foo.com ... # Destination server from URL
edd80fbb 1835 acl aclname srcdom_regex [-i] xxx ... # regex matching client name
1836 acl aclname dstdom_regex [-i] xxx ... # regex matching server
d0d41f07 1837 # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
1838 # based URL is used. The name "none" is used if the reverse lookup
1839 # fails.
1840
934b03fc 1841 acl aclname time [day-abbrevs] [h1:m1-h2:m2]
1842 day-abbrevs:
1843 S - Sunday
1844 M - Monday
1845 T - Tuesday
1846 W - Wednesday
1847 H - Thursday
1848 F - Friday
1849 A - Saturday
1850 h1:m1 must be less than h2:m2
edd80fbb 1851 acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL
1852 acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path
934b03fc 1853 acl aclname port 80 70 21 ...
ec5bba4d 1854 acl aclname port 0-1024 ... # ranges allowed
7e3ce7b9 1855 acl aclname myport 3128 ... # (local socket TCP port)
934b03fc 1856 acl aclname proto HTTP FTP ...
1857 acl aclname method GET POST ...
edd80fbb 1858 acl aclname browser [-i] regexp
1859 # pattern match on User-Agent header
c68e9c6b 1860 acl aclname ident username ...
145cf928 1861 acl aclname ident_regex [-i] pattern ...
c68e9c6b 1862 # string match on ident output.
1863 # use REQUIRED to accept any non-null ident.
6468fe10 1864 acl aclname src_as number ...
1865 acl aclname dst_as number ...
1866 # Except for access control, AS numbers can be used for
1867 # routing of requests to specific caches. Here's an
1868 # example for routing all requests for AS#1241 and only
1869 # those to mycache.mydomain.net:
1870 # acl asexample dst_as 1241
d87ebd78 1871 # cache_peer_access mycache.mydomain.net allow asexample
1872 # cache_peer_access mycache_mydomain.net deny all
6468fe10 1873
c68e9c6b 1874 acl aclname proxy_auth username ...
145cf928 1875 acl aclname proxy_auth_regex [-i] pattern ...
c68e9c6b 1876 # list of valid usernames
1877 # use REQUIRED to accept any valid username.
73e67ee0 1878 #
1879 # NOTE: when a Proxy-Authentication header is sent but it is not
1880 # needed during ACL checking the username is NOT logged
1881 # in access.log.
c68e9c6b 1882 #
1883 # NOTE: proxy_auth requires a EXTERNAL authentication program
1884 # to check username/password combinations (see
1885 # authenticate_program).
1886 #
1887 # WARNING: proxy_auth can't be used in a transparent proxy. It
1888 # collides with any authentication done by origin servers. It may
1889 # seem like it works at first, but it doesn't.
934b03fc 1890
dba79ac5 1891 acl aclname snmp_community string ...
08f6b5e0 1892 # A community string to limit access to your SNMP Agent
dba79ac5 1893 # Example:
1894 #
1895 # acl snmppublic snmp_community public
1896
9bc73deb 1897 acl aclname maxconn number
1898 # This will be matched when the client's IP address has
1899 # more than <number> HTTP connections established.
1900
fb8ee28e 1901 acl aclname req_mime_type mime-type1 ...
ba2b31a8 1902 # regex match agains the mime type of the request generated
1903 # by the client. Can be used to detect file upload or some
1904 # types HTTP tunelling requests.
1905 # NOTE: This does NOT match the reply. You cannot use this
1906 # to match the returned file type.
c68e9c6b 1907
fb8ee28e 1908 acl aclname rep_mime_type mime-type1 ...
c4ab8329 1909 # regex match against the mime type of the reply recieved by
1910 # squid. Can be used to detect file download or some
1911 # types HTTP tunelling requests.
1912 # NOTE: This has no effect in http_access rules. It only has
1913 # effect in rules that affect the reply data stream such as
1914 # http_reply_access.
1915
1916
c68e9c6b 1917Examples:
1918acl myexample dst_as 1241
aa6956a5 1919acl password proxy_auth REQUIRED
ba2b31a8 1920acl fileupload req_mime_type -i ^multipart/form-data$
c4ab8329 1921acl javascript rep_mime_type -i ^application/x-javascript$
c68e9c6b 1922
c68e9c6b 1923NOCOMMENT_START
6b53c392 1924#Recommended minimum configuration:
c68e9c6b 1925acl all src 0.0.0.0/0.0.0.0
934b03fc 1926acl manager proto cache_object
1927acl localhost src 127.0.0.1/255.255.255.255
934b03fc 1928acl SSL_ports port 443 563
6b53c392 1929acl Safe_ports port 80 # http
1930acl Safe_ports port 21 # ftp
1931acl Safe_ports port 443 563 # https, snews
1932acl Safe_ports port 70 # gopher
1933acl Safe_ports port 210 # wais
1934acl Safe_ports port 1025-65535 # unregistered ports
9bc73deb 1935acl Safe_ports port 280 # http-mgmt
1936acl Safe_ports port 488 # gss-http
1937acl Safe_ports port 591 # filemaker
1938acl Safe_ports port 777 # multiling http
934b03fc 1939acl CONNECT method CONNECT
c68e9c6b 1940NOCOMMENT_END
934b03fc 1941DOC_END
1942
1943NAME: http_access
1944TYPE: acl_access
f1dc9b30 1945LOC: Config.accessList.http
1946DEFAULT: none
da7f354f 1947DEFAULT_IF_NONE: deny all
934b03fc 1948DOC_START
1949 Allowing or Denying access based on defined access lists
1950
1951 Access to the HTTP port:
1952 http_access allow|deny [!]aclname ...
1953
934b03fc 1954 NOTE on default values:
1955
6b53c392 1956 If there are no "access" lines present, the default is to deny
934b03fc 1957 the request.
1958
1959 If none of the "access" lines cause a match, the default is the
1960 opposite of the last line in the list. If the last line was
1961 deny, then the default is allow. Conversely, if the last line
1962 is allow, the default will be deny. For these reasons, it is a
1963 good idea to have an "deny all" or "allow all" entry at the end
1964 of your access lists to avoid potential confusion.
1965
c68e9c6b 1966NOCOMMENT_START
6b53c392 1967#Recommended minimum configuration:
1968#
1969# Only allow cachemgr access from localhost
c68e9c6b 1970http_access allow manager localhost
1971http_access deny manager
6b53c392 1972# Deny requests to unknown ports
499558df 1973http_access deny !Safe_ports
6b53c392 1974# Deny CONNECT to other than SSL ports
c68e9c6b 1975http_access deny CONNECT !SSL_ports
1976#
1977# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
1978#
6b53c392 1979# And finally deny all other access to this proxy
c68e9c6b 1980http_access deny all
1981NOCOMMENT_END
934b03fc 1982DOC_END
1983
c4ab8329 1984NAME: http_reply_access
1985TYPE: acl_access
1986LOC: Config.accessList.reply
1987DEFAULT: none
1988DEFAULT_IF_NONE: allow all
1989DOC_START
1990 Allow replies to client requests. This is complementary to http_access.
1991
1992 http_reply_access allow|deny [!] aclname ...
1993
1994 NOTE: if there are no access lines present, the default is to allow
1995 all replies
1996
1997 If none of the access lines cause a match, then the opposite of the
1998 last line will apply. Thus it is good practice to end the rules
1999 with an "allow all" or "deny all" entry.
2000
2001NOCOMMENT_START
2002#Recommended minimum configuration:
2003#
2004# Insert your own rules here.
2005#
2006#
2007# and finally allow by default
2008http_reply_access allow all
2009NOCOMMENT_END
2010DOC_END
2011
934b03fc 2012
2013NAME: icp_access
2014TYPE: acl_access
f1dc9b30 2015LOC: Config.accessList.icp
2016DEFAULT: none
da7f354f 2017DEFAULT_IF_NONE: deny all
934b03fc 2018DOC_START
6b53c392 2019 Allowing or Denying access to the ICP port based on defined
2020 access lists
2021
2022 icp_access allow|deny [!]aclname ...
2023
2024 See http_access for details
934b03fc 2025
c68e9c6b 2026NOCOMMENT_START
6b53c392 2027#Allow ICP queries from eveyone
c68e9c6b 2028icp_access allow all
2029NOCOMMENT_END
934b03fc 2030DOC_END
2031
2032
2033NAME: miss_access
2034TYPE: acl_access
f1dc9b30 2035LOC: Config.accessList.miss
2036DEFAULT: none
934b03fc 2037DOC_START
2038 Use to force your neighbors to use you as a sibling instead of
2039 a parent. For example:
2040
2041 acl localclients src 172.16.0.0/16
2042 miss_access allow localclients
2043 miss_access deny !localclients
2044
2045 This means that only your local clients are allowed to fetch
2046 MISSES and all other clients can only fetch HITS.
2047
2048 By default, allow all clients who passed the http_access rules
2049 to fetch MISSES from us.
6b53c392 2050
c68e9c6b 2051NOCOMMENT_START
6b53c392 2052#Default setting:
2053# miss_access allow all
c68e9c6b 2054NOCOMMENT_END
934b03fc 2055DOC_END
2056
2057
505e35db 2058NAME: cache_peer_access
2059TYPE: peer_access
f1dc9b30 2060DEFAULT: none
2061LOC: none
934b03fc 2062DOC_START
505e35db 2063 Similar to 'cache_peer_domain' but provides more flexibility by
2064 using ACL elements.
934b03fc 2065
505e35db 2066 cache_peer_access cache-host allow|deny [!]aclname ...
934b03fc 2067
505e35db 2068 The syntax is identical to 'http_access' and the other lists of
2069 ACL elements. See the comments for 'http_access' below, or
2b6662ba 2070 the Squid FAQ (http://www.squid-cache.org/FAQ/FAQ-10.html).
934b03fc 2071DOC_END
2072
ec603b25 2073NAME: ident_lookup_access
2074TYPE: acl_access
2075IFDEF: USE_IDENT
2076DEFAULT: none
2077DEFAULT_IF_NONE: deny all
2078LOC: Config.accessList.identLookup
2079DOC_START
2080 A list of ACL elements which, if matched, cause an ident
2081 (RFC 931) lookup to be performed for this request. For
2082 example, you might choose to always perform ident lookups
2083 for your main multi-user Unix boxes, but not for your Macs
2084 and PCs. By default, ident lookups are not performed for
2085 any requests.
2086
2087 To enable ident lookups for specific client addresses, you
2088 can follow this example:
2089
2090 acl ident_aware_hosts src 198.168.1.0/255.255.255.0
2091 ident_lookup_access allow ident_aware_hosts
2092 ident_lookup_access deny all
2093
2094 This option may be disabled by using --disable-ident with
2095 the configure script.
ec603b25 2096DOC_END
2097
2098
a560ee93 2099NAME: reply_body_max_size
2100COMMENT: bytes allow|deny acl acl...
2101TYPE: body_size_t
2102DEFAULT: none
2103DEFAULT_IF_NONE: 0 allow all
2104LOC: Config.ReplyBodySize
2105DOC_START
2106 This option specifies the maximum size of a reply body. It
2107 can be used to prevent users from downloading very large files,
2108 such as MP3's and movies. When the reply headers are recieved,
2109 the reply_body_max_size lines are processed, and the first line with
2110 a result of "allow" is used as the maximum body size for this reply.
2111 This size is then checked twice. First when we get the reply headers,
2112 we check the content-length value. If the content length value exists
2113 and is larger than the allowed size, the request is denied and the
2114 user receives an error message that says "the request or reply
2115 is too large." If there is no content-length, and the reply
2116 size exceeds this limit, the client's connection is just closed
2117 and they will receive a partial reply.
2118
2119 WARNING: downstream caches probably can not detect a partial reply
2120 if there is no content-length header, so they will cache
2121 partial responses and give them out as hits. You should NOT
2122 use this option if you have downstream caches.
2123
2124 WARNING: A maximum size larger than the size of squid's error messages
2125 will cause an infinite loop and crash squid. Ensure that the smallest
2126 non-zero value you use is greater that the maximum header size plus
2127 the size of your largest error page.
2128
2129 If you set this parameter to zero (the default), there will be
2130 no limit imposed.
2131DOC_END
2132
0f74202c 2133COMMENT_START
3a278cb8 2134 ADMINISTRATIVE PARAMETERS
2135 -----------------------------------------------------------------------------
0f74202c 2136COMMENT_END
934b03fc 2137
2138NAME: cache_mgr
2139TYPE: string
2140DEFAULT: webmaster
2141LOC: Config.adminEmail
2142DOC_START
2143 Email-address of local cache manager who will receive
2144 mail if the cache dies. The default is "webmaster."
934b03fc 2145DOC_END
2146
2147
2148NAME: cache_effective_user
0153d498 2149TYPE: string
a95856a0 2150DEFAULT: nobody
0153d498 2151LOC: Config.effectiveUser
2152DOC_NONE
2153
2154NAME: cache_effective_group
2155TYPE: string
8749fa47 2156DEFAULT: none
0153d498 2157LOC: Config.effectiveGroup
934b03fc 2158DOC_START
5a3f6538 2159
934b03fc 2160 If the cache is run as root, it will change its effective/real
5a3f6538 2161 UID/GID to the UID/GID specified below. The default is to
8749fa47 2162 change to UID to nobody and GID to the default group of nobody.
5a3f6538 2163
2164 If Squid is not started as root, the default is to keep the
8749fa47 2165 current UID/GID, and only the GID can be changed to any of
2166 the groups the user starting Squid is member of. Note that if
2167 Squid is not started as root then you cannot set http_port to
2168 a value lower than 1024.
934b03fc 2169DOC_END
2170
2171
2172NAME: visible_hostname
2173TYPE: string
2174LOC: Config.visibleHostname
f1dc9b30 2175DEFAULT: none
934b03fc 2176DOC_START
2177 If you want to present a special hostname in error messages, etc,
2178 then define this. Otherwise, the return value of gethostname()
cf5cc17e 2179 will be used. If you have multiple caches in a cluster and
2180 get errors about IP-forwarding you must set them to have individual
2181 names with this setting.
934b03fc 2182DOC_END
2183
98829f69 2184
2185NAME: unique_hostname
2186TYPE: string
2187LOC: Config.uniqueHostname
2188DEFAULT: none
2189DOC_START
2190 If you want to have multiple machines with the same
2191 'visible_hostname' then you must give each machine a different
2192 'unique_hostname' so that forwarding loops can be detected.
98829f69 2193DOC_END
2194
1f38f50a 2195
2196NAME: hostname_aliases
2197TYPE: wordlist
2198LOC: Config.hostnameAliases
2199DEFAULT: none
2200DOC_START
2201 A list of other DNS names that your cache has.
2202DOC_END
2203
0f74202c 2204COMMENT_START
3a278cb8 2205 OPTIONS FOR THE CACHE REGISTRATION SERVICE
2206 -----------------------------------------------------------------------------
934b03fc 2207
3a278cb8 2208 This section contains parameters for the (optional) cache
2209 announcement service. This service is provided to help
2210 cache administrators locate one another in order to join or
2211 create cache hierarchies.
934b03fc 2212
3a278cb8 2213 An 'announcement' message is sent (via UDP) to the registration
efd900cb 2214 service by Squid. By default, the announcement message is NOT
d2d631ce 2215 SENT unless you enable it with 'announce_period' below.
3a278cb8 2216
2217 The announcement message includes your hostname, plus the
2218 following information from this configuration file:
934b03fc 2219
3a278cb8 2220 http_port
2221 icp_port
2222 cache_mgr
2223
2224 All current information is processed regularly and made
2b6662ba 2225 available on the Web at http://www.ircache.net/Cache/Tracker/.
0f74202c 2226COMMENT_END
934b03fc 2227
f1dc9b30 2228NAME: announce_period
2229TYPE: time_t
2230LOC: Config.Announce.period
d2d631ce 2231DEFAULT: 0
934b03fc 2232DOC_START
d2d631ce 2233 This is how frequently to send cache announcements. The
2234 default is `0' which disables sending the announcement
2235 messages.
934b03fc 2236
cd748f27 2237 To enable announcing your cache, just uncomment the line
2238 below.
2239
6b53c392 2240NOCOMMENT_START
2241#To enable announcing your cache, just uncomment the line below.
2242#announce_period 1 day
2243NOCOMMENT_END
934b03fc 2244DOC_END
2245
2246
f1dc9b30 2247NAME: announce_host
2248TYPE: string
61735fcf 2249DEFAULT: tracker.ircache.net
f1dc9b30 2250LOC: Config.Announce.host
2251DOC_NONE
2252
cf5cc17e 2253NAME: announce_file
2254TYPE: string
61735fcf 2255DEFAULT: none
cf5cc17e 2256LOC: Config.Announce.file
2257DOC_NONE
2258
f1dc9b30 2259NAME: announce_port
2260TYPE: ushort
2261DEFAULT: 3131
2262LOC: Config.Announce.port
934b03fc 2263DOC_START
d2d631ce 2264 announce_host and announce_port set the hostname and port
2265 number where the registration message will be sent.
934b03fc 2266
d2d631ce 2267 Hostname will default to 'tracker.ircache.net' and port will
2268 default default to 3131. If the 'filename' argument is given,
2269 the contents of that file will be included in the announce
2270 message.
934b03fc 2271DOC_END
2272
0f74202c 2273COMMENT_START
3a278cb8 2274 HTTPD-ACCELERATOR OPTIONS
2275 -----------------------------------------------------------------------------
0f74202c 2276COMMENT_END
934b03fc 2277
f1dc9b30 2278NAME: httpd_accel_host
2279TYPE: string
2280LOC: Config.Accel.host
2281DEFAULT: none
2282DOC_NONE
2283
2284NAME: httpd_accel_port
2285TYPE: ushort
2286LOC: Config.Accel.port
5b68a4d3 2287DEFAULT: 80
934b03fc 2288DOC_START
cf5cc17e 2289 If you want to run Squid as an httpd accelerator, define the
934b03fc 2290 host name and port number where the real HTTP server is.
2291
2292 If you want virtual host support then specify the hostname
2293 as "virtual".
2294
42b51993 2295 If you want virtual port support then specify the port as "0".
2296
839491ad 2297 NOTE: enabling httpd_accel_host disables proxy-caching and
2298 ICP. If you want these features enabled also, then set
2299 the 'httpd_accel_with_proxy' option.
934b03fc 2300DOC_END
2301
13c7936a 2302NAME: httpd_accel_single_host
2303COMMENT: on|off
2304TYPE: onoff
2305LOC: Config.Accel.single_host
b0a9b5f2 2306DEFAULT: off
13c7936a 2307DOC_START
2308 If you are running Squid as a accelerator and have a single backend
2309 server then set this to on. This causes Squid to forward the request
2310 to this server irregardles of what any redirectors or Host headers
2311 says.
2312
b0a9b5f2 2313 Leave this at off if you have multiple backend servers, and use a
2314 redirector (or host table or private DNS) to map the requests to the
13c7936a 2315 appropriate backend servers. Note that the mapping needs to be a
2316 1-1 mapping between requested and backend (from redirector) domain
2317 names or caching will fail, as cacing is performed using the
2318 URL returned from the redirector.
2319
2320 See also redirect_rewrites_host_header.
2321DOC_END
934b03fc 2322
2323NAME: httpd_accel_with_proxy
2324COMMENT: on|off
2325TYPE: onoff
f1dc9b30 2326DEFAULT: off
17a0a4ee 2327LOC: Config.onoff.accel_with_proxy
934b03fc 2328DOC_START
cf5cc17e 2329 If you want to use Squid as both a local httpd accelerator
6b53c392 2330 and as a proxy, change this to 'on'. Note however that your
2331 proxy users may have trouble to reach the accelerated domains
2332 unless their browsers are configured not to use this proxy for
2333 those domains (for example via the no_proxy browser configuration
2334 setting)
934b03fc 2335DOC_END
2336
934b03fc 2337NAME: httpd_accel_uses_host_header
2338COMMENT: on|off
2339TYPE: onoff
f1dc9b30 2340DEFAULT: off
934b03fc 2341LOC: opt_accel_uses_host
2342DOC_START
2343 HTTP/1.1 requests include a Host: header which is basically the
2344 hostname from the URL. Squid can be an accelerator for
2345 different HTTP servers by looking at this header. However,
2346 Squid does NOT check the value of the Host header, so it opens
2347 a big security hole. We recommend that this option remain
2348 disabled unless you are sure of what you are doing.
2349
04f6f348 2350 However, you will need to enable this option if you run Squid
2351 as a transparent proxy. Otherwise, virtual servers which
2352 require the Host: header will not be properly cached.
934b03fc 2353DOC_END
2354
0f74202c 2355COMMENT_START
3a278cb8 2356 MISCELLANEOUS
2357 -----------------------------------------------------------------------------
0f74202c 2358COMMENT_END
934b03fc 2359
2360NAME: dns_testnames
2361TYPE: wordlist
2362LOC: Config.dns_testname_list
f1dc9b30 2363DEFAULT: none
6b53c392 2364DEFAULT_IF_NONE: netscape.com internic.net nlanr.net microsoft.com
934b03fc 2365DOC_START
2366 The DNS tests exit as soon as the first site is successfully looked up
2367
6b53c392 2368 This test can be disabled with the -D command line option.
934b03fc 2369DOC_END
2370
2371
2372NAME: logfile_rotate
2373TYPE: int
2374DEFAULT: 10
2375LOC: Config.Log.rotateNumber
2376DOC_START
5a3f6538 2377 Specifies the number of logfile rotations to make when you
2378 type 'squid -k rotate'. The default is 10, which will rotate
cf5cc17e 2379 with extensions 0 through 9. Setting logfile_rotate to 0 will
934b03fc 2380 disable the rotation, but the logfiles are still closed and
cf5cc17e 2381 re-opened. This will enable you to rename the logfiles
5a3f6538 2382 yourself just before sending the rotate signal.
2383
2384 Note, the 'squid -k rotate' command normally sends a USR1
2385 signal to the running squid process. In certain situations
2386 (e.g. on Linux with Async I/O), USR1 is used for other
2387 purposes, so -k rotate uses another signal. It is best to get
2388 in the habit of using 'squid -k rotate' instead of 'kill -USR1
2389 <pid>'.
934b03fc 2390DOC_END
2391
2392
2393NAME: append_domain
f1dc9b30 2394TYPE: string
2395LOC: Config.appendDomain
2396DEFAULT: none
934b03fc 2397DOC_START
cf5cc17e 2398 Appends local domain name to hostnames without any dots in
2399 them. append_domain must begin with a period.
934b03fc 2400
6b53c392 2401Example:
2402 append_domain .yourdomain.com
934b03fc 2403DOC_END
2404
2405
2406NAME: tcp_recv_bufsize
89de058c 2407COMMENT: (bytes)
1b635117 2408TYPE: b_size_t
89de058c 2409DEFAULT: 0 bytes
934b03fc 2410LOC: Config.tcpRcvBufsz
2411DOC_START
2412 Size of receive buffer to set for TCP sockets. Probably just
2413 as easy to change your kernel's default. Set to zero to use
2414 the default buffer size.
934b03fc 2415DOC_END
2416
934b03fc 2417NAME: err_html_text
f1dc9b30 2418TYPE: eol
2419LOC: Config.errHtmlText
2420DEFAULT: none
934b03fc 2421DOC_START
2422 HTML text to include in error messages. Make this a "mailto"
2423 URL to your admin address, or maybe just a link to your
2424 organizations Web page.
2425
ab1e6b8a 2426 To include this in your error messages, you must rewrite
2427 the error template files (found in the "errors" directory).
2428 Wherever you want the 'err_html_text' line to appear,
2429 insert a %L tag in the error template file.
934b03fc 2430DOC_END
2431
2432
2433NAME: deny_info
2434TYPE: denyinfo
2435LOC: Config.denyInfoList
f1dc9b30 2436DEFAULT: none
934b03fc 2437DOC_START
02922e76 2438 Usage: deny_info err_page_name acl
2439 Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
934b03fc 2440
02922e76 2441 This can be used to return a ERR_ page for requests which
934b03fc 2442 do not pass the 'http_access' rules. A single ACL will cause
2443 the http_access check to fail. If a 'deny_info' line exists
02922e76 2444 for that ACL then Squid returns a corresponding error page.
cf5cc17e 2445
02922e76 2446 You may use ERR_ pages that come with Squid or create your own pages
2447 and put them into the configured errors/ directory.
934b03fc 2448DOC_END
2449
934b03fc 2450NAME: memory_pools
2451COMMENT: on|off
2452TYPE: onoff
f1dc9b30 2453DEFAULT: on
3f6c0fb2 2454LOC: Config.onoff.mem_pools
934b03fc 2455DOC_START
2456 If set, Squid will keep pools of allocated (but unused) memory
2457 available for future use. If memory is a premium on your
7021844c 2458 system and you believe your malloc library outperforms Squid
d0d41f07 2459 routines, disable this.
934b03fc 2460DOC_END
2461
7021844c 2462NAME: memory_pools_limit
2463COMMENT: (bytes)
2464TYPE: b_size_t
2465DEFAULT: none
f12c295b 2466LOC: Config.MemPools.limit
7021844c 2467DOC_START
f12c295b 2468 Used only with memory_pools on:
2469 memory_pools_limit 50 MB
7021844c 2470
f12c295b 2471 If set to a non-zero value, Squid will keep at most the specified
2472 limit of allocated (but unused) memory in memory pools. All free()
2473 requests that exceed this limit will be handled by your malloc
2474 library. Squid does not pre-allocate any memory, just safe-keeps
2475 objects that otherwise would be free()d. Thus, it is safe to set
7021844c 2476 memory_pools_limit to a reasonably high value even if your
f12c295b 2477 configuration will use less memory.
2478
2479 If not set (default) or set to zero, Squid will keep all memory it
2480 can. That is, there will be no limit on the total amount of memory
2481 used for safe-keeping.
7021844c 2482
2483 To disable memory allocation optimization, do not set
2484 memory_pools_limit to 0. Set memory_pools to "off" instead.
2485
f12c295b 2486 An overhead for maintaining memory pools is not taken into account
2487 when the limit is checked. This overhead is close to four bytes per
2488 object kept. However, pools may actually _save_ memory because of
2489 reduced memory thrashing in your malloc library.
7021844c 2490DOC_END
2491
934b03fc 2492NAME: forwarded_for
2493COMMENT: on|off
2494TYPE: onoff
f1dc9b30 2495DEFAULT: on
934b03fc 2496LOC: opt_forwarded_for
2497DOC_START
2498 If set, Squid will include your system's IP address or name
2499 in the HTTP requests it forwards. By default it looks like
2500 this:
2501
2502 X-Forwarded-For: 192.1.2.3
2503
2504 If you disable this, it will appear as
2505
2506 X-Forwarded-For: unknown
934b03fc 2507DOC_END
2508
2509NAME: log_icp_queries
2510COMMENT: on|off
2511TYPE: onoff
f1dc9b30 2512DEFAULT: on
17a0a4ee 2513LOC: Config.onoff.log_udp
934b03fc 2514DOC_START
cf5cc17e 2515 If set, ICP queries are logged to access.log. You may wish
2516 do disable this if your ICP load is VERY high to speed things
2517 up or to simplify log analysis.
934b03fc 2518DOC_END
2519
88738790 2520NAME: icp_hit_stale
2521COMMENT: on|off
2522TYPE: onoff
2523DEFAULT: off
17a0a4ee 2524LOC: Config.onoff.icp_hit_stale
88738790 2525DOC_START
2526 If you want to return ICP_HIT for stale cache objects, set this
2527 option to 'on'. If you have sibling relationships with caches
2528 in other administrative domains, this should be 'off'. If you only
2529 have sibling relationships with caches under your control, then
2530 it is probably okay to set this to 'on'.
88738790 2531DOC_END
2532
934b03fc 2533
2534NAME: minimum_direct_hops
2535TYPE: int
2536DEFAULT: 4
2537LOC: Config.minDirectHops
2538DOC_START
2539 If using the ICMP pinging stuff, do direct fetches for sites
2540 which are no more than this many hops away.
934b03fc 2541DOC_END
2542
5f84d830 2543NAME: minimum_direct_rtt
2544TYPE: int
2545DEFAULT: 400
2546LOC: Config.minDirectRtt
2547DOC_START
2548 If using the ICMP pinging stuff, do direct fetches for sites
2549 which are no more than this many rtt milliseconds away.
2550DOC_END
934b03fc 2551
2552NAME: cachemgr_passwd
2553TYPE: cachemgrpasswd
86101e40 2554DEFAULT: none
f1dc9b30 2555LOC: Config.passwd_list
934b03fc 2556DOC_START
2557 Specify passwords for cachemgr operations.
2558
2559 Usage: cachemgr_passwd password action action ...
2560
064a674d 2561 Some valid actions are (see cache manager menu for a full list):
2562 5min
2563 60min
2564 asndb
2565 authenticator
2566 cbdata
2567 client_list
2568 comm_incoming
2569 config *
2570 counters
2571 delay
2572 digest_stats
cf5cc17e 2573 dns
064a674d 2574 events
cf5cc17e 2575 filedescriptors
064a674d 2576 fqdncache
2577 histograms
2578 http_headers
2579 info
2580 io
2581 ipcache
2582 mem
2583 menu
cf5cc17e 2584 netdb
064a674d 2585 non_peers
2586 objects
2587 pconn
2588 peer_select
2589 redirector
2590 refresh
934b03fc 2591 server_list
064a674d 2592 shutdown *
2593 store_digest
2594 storedir
2595 utilization
2596 via_headers
2597 vm_objects
934b03fc 2598
2599 * Indicates actions which will not be performed without a
2600 valid password, others can be performed if not listed here.
2601
2602 To disable an action, set the password to "disable".
2603 To allow performing an action without a password, set the
2604 password to "none".
2605
2606 Use the keyword "all" to set the same password for all actions.
2607
6b53c392 2608Example:
2609 cachemgr_passwd secret shutdown
2610 cachemgr_passwd lesssssssecret info stats/objects
2611 cachemgr_passwd disable all
934b03fc 2612DOC_END
2613
934b03fc 2614NAME: store_avg_object_size
86101e40 2615COMMENT: (kbytes)
2616TYPE: kb_size_t
2bf99296 2617DEFAULT: 13 KB
934b03fc 2618LOC: Config.Store.avgObjectSize
2619DOC_START
2620 Average object size, used to estimate number of objects your
2621 cache can hold. See doc/Release-Notes-1.1.txt. The default is
2bf99296 2622 13 KB.
934b03fc 2623DOC_END
2624
2625NAME: store_objects_per_bucket
2626TYPE: int
baf144ad 2627DEFAULT: 20
934b03fc 2628LOC: Config.Store.objectsPerBucket
2629DOC_START
2630 Target number of objects per bucket in the store hash table.
2631 Lowering this value increases the total number of buckets and
7e3ce7b9 2632 also the storage maintenance rate. The default is 50.
934b03fc 2633DOC_END
2634
934b03fc 2635NAME: client_db
2636COMMENT: on|off
2637TYPE: onoff
f1dc9b30 2638DEFAULT: on
17a0a4ee 2639LOC: Config.onoff.client_db
934b03fc 2640DOC_START
2641 If you want to disable collecting per-client statistics, then
2642 turn off client_db here.
934b03fc 2643DOC_END
2644
2645
2646NAME: netdb_low
2647TYPE: int
2648DEFAULT: 900
2649LOC: Config.Netdb.low
2650DOC_NONE
2651
2652NAME: netdb_high
2653TYPE: int
2654DEFAULT: 1000
2655LOC: Config.Netdb.high
2656DOC_START
2657 The low and high water marks for the ICMP measurement
2658 database. These are counts, not percents. The defaults are
2659 900 and 1000. When the high water mark is reached, database
2660 entries will be deleted until the low mark is reached.
934b03fc 2661DOC_END
2662
2663
2664NAME: netdb_ping_period
f1dc9b30 2665TYPE: time_t
934b03fc 2666LOC: Config.Netdb.period
9e975e4e 2667DEFAULT: 5 minutes
934b03fc 2668DOC_START
2669 The minimum period for measuring a site. There will be at
2670 least this much delay between successive pings to the same
2671 network. The default is five minutes.
934b03fc 2672DOC_END
2673
2674
2675NAME: query_icmp
2676COMMENT: on|off
2677TYPE: onoff
f1dc9b30 2678DEFAULT: off
17a0a4ee 2679LOC: Config.onoff.query_icmp
934b03fc 2680DOC_START
2681 If you want to ask your peers to include ICMP data in their ICP
2682 replies, enable this option.
2683
cf5cc17e 2684 If your peer has configured Squid (during compilation) with
2685 '--enable-icmp' then that peer will send ICMP pings to origin server
2686 sites of the URLs it receives. If you enable this option then the
2687 ICP replies from that peer will include the ICMP data (if available).
2688 Then, when choosing a parent cache, Squid will choose the parent with
934b03fc 2689 the minimal RTT to the origin server. When this happens, the
2690 hierarchy field of the access.log will be
2691 "CLOSEST_PARENT_MISS". This option is off by default.
934b03fc 2692DOC_END
2693
88500f96 2694NAME: test_reachability
194dd3b8 2695COMMENT: on|off
2696TYPE: onoff
2697DEFAULT: off
2698LOC: Config.onoff.test_reachability
2699DOC_START
2700 When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
2701 instead of ICP_MISS if the target host is NOT in the ICMP
2702 database, or has a zero RTT.
194dd3b8 2703DOC_END
2704
78f1250a 2705NAME: buffered_logs
2706COMMENT: on|off
2707TYPE: onoff
2708DEFAULT: off
17a0a4ee 2709LOC: Config.onoff.buffered_logs
78f1250a 2710DOC_START
2711 Some log files (cache.log, useragent.log) are written with
2712 stdio functions, and as such they can be buffered or
cf5cc17e 2713 unbuffered. By default they will be unbuffered. Buffering them
2714 can speed up the writing slightly (though you are unlikely to
2715 need to worry).
78f1250a 2716DOC_END
2717
465dc415 2718NAME: reload_into_ims
9f60cfdf 2719IFDEF: HTTP_VIOLATIONS
465dc415 2720COMMENT: on|off
2721TYPE: onoff
2722DEFAULT: off
2723LOC: Config.onoff.reload_into_ims
2724DOC_START
2725 When you enable this option, client no-cache or ``reload''
2726 requests will be changed to If-Modified-Since requests.
2727 Doing this VIOLATES the HTTP standard. Enabling this
2728 feature could make you liable for problems which it
2729 causes.
cbe3a719 2730
2731 see also refresh_pattern for a more selective approach.
2732
6b8e7481 2733 This option may be disabled by using --disable-http-violations
2734 with the configure script.
465dc415 2735DOC_END
2736
934b03fc 2737NAME: always_direct
2738TYPE: acl_access
2739LOC: Config.accessList.AlwaysDirect
f1dc9b30 2740DEFAULT: none
934b03fc 2741DOC_START
2a78fa67 2742 Usage: always_direct allow|deny [!]aclname ...
2743
2744 Here you can use ACL elements to specify requests which should
3445a83a 2745 ALWAYS be forwarded directly to origin servers. For example,
2746 to always directly forward requests for local servers use
2a78fa67 2747 something like:
2748
2749 acl local-servers dstdomain my.domain.net
2750 always_direct allow local-servers
2751
2752 To always forward FTP requests directly, use
2753
2754 acl FTP proto FTP
2755 always_direct allow FTP
2756
2757 NOTE: There is a similar, but opposite option named
2758 'never_direct'. You need to be aware that "always_direct deny
2759 foo" is NOT the same thing as "never_direct allow foo". You
2760 may need to use a deny rule to exclude a more-specific case of
2761 some other rule. Example:
2762
2763 acl local-external dstdomain external.foo.net
2764 acl local-servers dstdomain foo.net
2765 always_direct deny local-external
2766 always_direct allow local-servers
3445a83a 2767
2768 This option replaces some v1.1 options such as local_domain
2769 and local_ip.
934b03fc 2770DOC_END
2771
2772NAME: never_direct
2773TYPE: acl_access
2774LOC: Config.accessList.NeverDirect
f1dc9b30 2775DEFAULT: none
934b03fc 2776DOC_START
d0d41f07 2777 Usage: never_direct allow|deny [!]aclname ...
2a78fa67 2778
2779 never_direct is the opposite of always_direct. Please read
2780 the description for always_direct if you have not already.
934b03fc 2781
2a78fa67 2782 With 'never_direct' you can use ACL elements to specify
2783 requests which should NEVER be forwarded directly to origin
3445a83a 2784 servers. For example, to force the use of a proxy for all
2785 requests, except those in your local domain use something like:
2a78fa67 2786
3445a83a 2787 acl local-servers dstdomain foo.net
2a78fa67 2788 acl all src 0.0.0.0/0.0.0.0
d0d41f07 2789 never_direct deny local-servers
2790 never_direct allow all
3445a83a 2791
2792 or if squid is inside a firewall and there is local intranet
2793 servers inside the firewall then use something like:
2794
2795 acl local-intranet dstdomain foo.net
2796 acl local-external dstdomain external.foo.net
2797 always_direct deny local-external
2798 always_direct allow local-intranet
2799 never_direct allow all
2800
2801 This option replaces some v1.1 options such as inside_firewall
2802 and firewall_ip.
2a78fa67 2803DOC_END
934b03fc 2804
6bccf575 2805NAME: header_access
2806TYPE: http_header_access[]
2807LOC: Config.header_access
97474590 2808DEFAULT: none
2809DOC_START
6bccf575 2810 Usage: header_access header_name allow|deny [!]aclname ...
2811
2812 This option replaces the old 'anonymize_headers' and the
2813 older 'http_anonymizer' option with something that is much
2814 more configurable. This new method creates a list of ACLs
2815 for each header, allowing you very fine-tuned header
2816 mangling.
2817
2818 You can only specify known headers for the header name.
2819 Other headers are reclassified as 'Other'. You can also
2820 refer to all the headers with 'All'.
2821
2822 For example, to achieve the same behaviour as the old
5bcad01d 2823 'http_anonymizer standard' option, you should use:
6bccf575 2824
2825 header_access From deny all
2826 header_access Referer deny all
2827 header_access Server deny all
2828 header_access User-Agent deny all
2829 header_access WWW-Authenticate deny all
2830 header_access Link deny all
97474590 2831
5bcad01d 2832 Or, to reproduce the old 'http_anonymizer paranoid' feature
2833 you should use:
6bccf575 2834
2835 header_access Allow allow all
2836 header_access Authorization allow all
2837 header_access Cache-Control allow all
2838 header_access Content-Encoding allow all
2839 header_access Content-Length allow all
2840 header_access Content-Type allow all
2841 header_access Date allow all
2842 header_access Expires allow all
2843 header_access Host allow all
2844 header_access If-Modified-Since allow all
2845 header_access Last-Modified allow all
2846 header_access Location allow all
2847 header_access Pragma allow all
2848 header_access Accept allow all
2849 header_access Charset allow all
2850 header_access Accept-Encoding allow all
2851 header_access Accept-Language allow all
2852 header_access Content-Language allow all
2853 header_access Mime-Version allow all
2854 header_access Retry-After allow all
2855 header_access Title allow all
2856 header_access Connection allow all
2857 header_access Proxy-Connection allow all
2858 header_access All deny all
2859
5bcad01d 2860 By default, all headers are allowed (no anonymizing is
2861 performed).
97474590 2862DOC_END
2863
6bccf575 2864NAME: header_replace
2865TYPE: http_header_replace[]
2866LOC: Config.header_access
88738790 2867DEFAULT: none
2868DOC_START
6bccf575 2869 Usage: header_replace header_name message
2870 Example: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
2871
2872 This option allows you to change the contents of headers
2873 denied with header_access above, by replacing them with
2874 some fixed string. This replaces the old fake_user_agent
2875 option.
2876
2877 By default, headers are removed if denied.
88738790 2878DOC_END
2879
365cb147 2880NAME: icon_directory
f0b19334 2881TYPE: string
365cb147 2882LOC: Config.icons.directory
2883DEFAULT: @DEFAULT_ICON_DIR@
2884DOC_START
cf5cc17e 2885 Where the icons are stored. These are normally kept in
2886 @DEFAULT_ICON_DIR@
365cb147 2887DOC_END
2888
cf5cc17e 2889NAME: error_directory
365cb147 2890TYPE: string
cf5cc17e 2891LOC: Config.errorDirectory
2892DEFAULT: @DEFAULT_ERROR_DIR@
365cb147 2893DOC_START
cf5cc17e 2894 If you wish to create your own versions of the default
efd900cb 2895 (English) error files, either to customize them to suit your
2896 language or company copy the template English files to another
cf5cc17e 2897 directory and point this tag at them.
365cb147 2898DOC_END
88738790 2899
22c653cd 2900NAME: minimum_retry_timeout
2901COMMENT: (seconds)
2902TYPE: time_t
2903LOC: Config.retry.timeout
2904DEFAULT: 5 seconds
2905DOC_START
2906 This specifies the minimum connect timeout, for when the
2907 connect timeout is reduced to compensate for the availability
2908 of multiple IP addresses.
2909
cf5cc17e 2910 When a connection to a host is initiated, and that host has
2911 several IP addresses, the default connection timeout is reduced
2912 by dividing it by the number of addresses. So, a site with 15
2913 addresses would then have a timeout of 8 seconds for each
2914 address attempted. To avoid having the timeout reduced to the
2915 point where even a working host would not have a chance to
2916 respond, this setting is provided. The default, and the
2917 minimum value, is five seconds, and the maximum value is sixty
2918 seconds, or half of connect_timeout, whichever is greater and
2919 less than connect_timeout.
22c653cd 2920DOC_END
2921
2922NAME: maximum_single_addr_tries
2923TYPE: int
2924LOC: Config.retry.maxtries
2925DEFAULT: 3
2926DOC_START
2927 This sets the maximum number of connection attempts for a
2928 host that only has one address (for multiple-address hosts,
2929 each address is tried once).
2930
2931 The default value is three tries, the (not recommended)
2932 maximum is 255 tries. A warning message will be generated
2933 if it is set to a value greater than ten.
22c653cd 2934DOC_END
6d1c0d53 2935
a97cfa48 2936NAME: snmp_port
2937TYPE: ushort
2938LOC: Config.Port.snmp
2939DEFAULT: 3401
1df370e3 2940IFDEF: SQUID_SNMP
a97cfa48 2941DOC_START
cf5cc17e 2942 Squid can now serve statistics and status information via SNMP.
2943 By default it listens to port 3401 on the machine. If you don't
9bc73deb 2944 wish to use SNMP, set this to "0".
cf5cc17e 2945
2946 NOTE: SNMP support requires use the --enable-snmp configure
2947 command line option.
a97cfa48 2948DOC_END
2949
dba79ac5 2950NAME: snmp_access
2951TYPE: acl_access
2952LOC: Config.accessList.snmp
a97cfa48 2953DEFAULT: none
6502682e 2954DEFAULT_IF_NONE: deny all
1df370e3 2955IFDEF: SQUID_SNMP
a97cfa48 2956DOC_START
dba79ac5 2957 Allowing or denying access to the SNMP port.
08f6b5e0 2958
2959 All access to the agent is denied by default.
dba79ac5 2960 usage:
4feb7b2e 2961
dba79ac5 2962 snmp_access allow|deny [!]aclname ...
08f6b5e0 2963
2964Example:
6b53c392 2965 snmp_access allow snmppublic localhost
2966 snmp_access deny all
bdf18524 2967DOC_END
2968
15dcc168 2969NAME: snmp_incoming_address
2970TYPE: address
1ecaa0a0 2971LOC: Config.Addrs.snmp_incoming
15dcc168 2972DEFAULT: 0.0.0.0
2973IFDEF: SQUID_SNMP
2974DOC_NONE
2975NAME: snmp_outgoing_address
2976TYPE: address
2977LOC: Config.Addrs.snmp_outgoing
2978DEFAULT: 255.255.255.255
2979IFDEF: SQUID_SNMP
2980DOC_START
2981 Just like 'udp_incoming_address' above, but for the SNMP port.
2982
2983 snmp_incoming_address is used for the SNMP socket receiving
2984 messages from SNMP agents.
2985 snmp_outgoing_address is used for SNMP packets returned to SNMP
2986 agents.
2987
6b53c392 2988 The default snmp_incoming_address (0.0.0.0) is to listen on all
2989 available network interfaces.
15dcc168 2990
6b53c392 2991 If snmp_outgoing_address is set to 255.255.255.255 (the default)
2992 then it will use the same socket as snmp_incoming_address. Only
2993 change this if you want to have SNMP replies sent using another
2994 address than where this Squid listens for SNMP queries.
15dcc168 2995
6b53c392 2996 NOTE, snmp_incoming_address and snmp_outgoing_address can not have
2997 the same value since they both use port 3401.
15dcc168 2998DOC_END
bdf18524 2999
53ad48e6 3000NAME: as_whois_server
3001TYPE: string
3002LOC: Config.as_whois_server
3003DEFAULT: whois.ra.net
3004DEFAULT_IF_NONE: whois.ra.net
3005DOC_START
cf5cc17e 3006 WHOIS server to query for AS numbers. NOTE: AS numbers are
3007 queried only when Squid starts up, not for every request.
53ad48e6 3008DOC_END
95e36d02 3009
320e9f36 3010NAME: wccp_router
3011TYPE: address
3012LOC: Config.Wccp.router
3013DEFAULT: 0.0.0.0
eb824054 3014IFDEF: USE_WCCP
320e9f36 3015DOC_START
efd900cb 3016 Use this option to define your WCCP ``home'' router for
3017 Squid. Setting the 'wccp_router' to 0.0.0.0 (the default)
3018 disables WCCP.
320e9f36 3019DOC_END
3020
d20b1cd0 3021NAME: wccp_version
3022TYPE: int
3023LOC: Config.Wccp.version
3024DEFAULT: 4
3025IFDEF: USE_WCCP
3026DOC_START
3027 According to some users, Cisco IOS 11.2 only supports WCCP
3028 version 3. If you're using that version of IOS, change
3029 this value to 3.
3030DOC_END
3031
320e9f36 3032NAME: wccp_incoming_address
3033TYPE: address
eb824054 3034LOC: Config.Wccp.incoming
320e9f36 3035DEFAULT: 0.0.0.0
eb824054 3036IFDEF: USE_WCCP
320e9f36 3037DOC_NONE
3038NAME: wccp_outgoing_address
3039TYPE: address
eb824054 3040LOC: Config.Wccp.outgoing
320e9f36 3041DEFAULT: 255.255.255.255
eb824054 3042IFDEF: USE_WCCP
320e9f36 3043DOC_START
efd900cb 3044 wccp_incoming_address Use this option if you require WCCP
3045 messages to be received on only one
3046 interface. Do NOT use this option if
3047 you're unsure how many interfaces you
3048 have, or if you know you have only one
3049 interface.
320e9f36 3050
efd900cb 3051 wccp_outgoing_address Use this option if you require WCCP
3052 messages to be sent out on only one
3053 interface. Do NOT use this option if
3054 you're unsure how many interfaces you
3055 have, or if you know you have only one
3056 interface.
320e9f36 3057
efd900cb 3058 The default behavior is to not bind to any specific address.
320e9f36 3059
3060 NOTE, wccp_incoming_address and wccp_outgoing_address can not have
3061 the same value since they both use port 2048.
320e9f36 3062DOC_END
3063
3064
95e36d02 3065COMMENT_START
3066 DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
3067 -----------------------------------------------------------------------------
95e36d02 3068COMMENT_END
3069
59715b38 3070NAME: delay_pools
3071TYPE: delay_pool_count
3072DEFAULT: 0
95e36d02 3073IFDEF: DELAY_POOLS
59715b38 3074LOC: Config.Delay
95e36d02 3075DOC_START
59715b38 3076 This represents the number of delay pools to be used. For example,
3077 if you have one class 2 delay pool and one class 3 delays pool, you
3078 have a total of 2 delay pools.
3079
6b8e7481 3080 To enable this option, you must use --enable-delay-pools with the
3081 configure script.
95e36d02 3082DOC_END
3083
59715b38 3084NAME: delay_class
3085TYPE: delay_pool_class
95e36d02 3086DEFAULT: none
3087IFDEF: DELAY_POOLS
59715b38 3088LOC: Config.Delay
95e36d02 3089DOC_START
59715b38 3090 This defines the class of each delay pool. There must be exactly one
3091 delay_class line for each delay pool. For example, to define two
3092 delay pools, one of class 2 and one of class 3, the settings above
3093 and here would be:
3094
6b53c392 3095Example:
3096 delay_pools 2 # 2 delay pools
3097 delay_class 1 2 # pool 1 is a class 2 pool
3098 delay_class 2 3 # pool 2 is a class 3 pool
59715b38 3099
3100 The delay pool classes are:
3101
3102 class 1 Everything is limited by a single aggregate
3103 bucket.
3104
3105 class 2 Everything is limited by a single aggregate
3106 bucket as well as an "individual" bucket chosen
3107 from bits 25 through 32 of the IP address.
3108
3109 class 3 Everything is limited by a single aggregate
3110 bucket as well as a "network" bucket chosen
3111 from bits 17 through 24 of the IP address and a
3112 "individual" bucket chosen from bits 17 through
3113 32 of the IP address.
3114
3115 NOTE: If an IP address is a.b.c.d
3116 -> bits 25 through 32 are "d"
3117 -> bits 17 through 24 are "c"
3118 -> bits 17 through 32 are "c * 256 + d"
95e36d02 3119DOC_END
3120
59715b38 3121NAME: delay_access
3122TYPE: delay_pool_access
95e36d02 3123DEFAULT: none
3124IFDEF: DELAY_POOLS
59715b38 3125LOC: Config.Delay
95e36d02 3126DOC_START
59715b38 3127 This is used to determine which delay pool a request falls into.
efd900cb 3128 The first matched delay pool is always used, i.e., if a request falls
59715b38 3129 into delay pool number one, no more delay are checked, otherwise the
3130 rest are checked in order of their delay pool number until they have
3131 all been checked. For example, if you want some_big_clients in delay
3132 pool 1 and lotsa_little_clients in delay pool 2:
95e36d02 3133
6b53c392 3134Example:
3135 delay_access 1 allow some_big_clients
3136 delay_access 1 deny all
3137 delay_access 2 allow lotsa_little_clients
3138 delay_access 2 deny all
95e36d02 3139DOC_END
3140
59715b38 3141NAME: delay_parameters
3142TYPE: delay_pool_rates
3143DEFAULT: none
95e36d02 3144IFDEF: DELAY_POOLS
59715b38 3145LOC: Config.Delay
95e36d02 3146DOC_START
59715b38 3147 This defines the parameters for a delay pool. Each delay pool has
3148 a number of "buckets" associated with it, as explained in the
3149 description of delay_class. For a class 1 delay pool, the syntax is:
95e36d02 3150
59715b38 3151delay_parameters pool aggregate
95e36d02 3152
59715b38 3153 For a class 2 delay pool:
95e36d02 3154
59715b38 3155delay_parameters pool aggregate individual
95e36d02 3156
59715b38 3157 For a class 3 delay pool:
95e36d02 3158
59715b38 3159delay_parameters pool aggregate network individual
95e36d02 3160
59715b38 3161 The variables here are:
95e36d02 3162
59715b38 3163 pool a pool number - ie, a number between 1 and the
3164 number specified in delay_pools as used in
3165 delay_class lines.
95e36d02 3166
59715b38 3167 aggregate the "delay parameters" for the aggregate bucket
3168 (class 1, 2, 3).
95e36d02 3169
59715b38 3170 individual the "delay parameters" for the individual
3171 buckets (class 2, 3).
3172
3173 network the "delay parameters" for the network buckets
3174 (class 3).
3175
3176 A pair of delay parameters is written restore/maximum, where restore is
3177 the number of bytes (not bits - modem and network speeds are usually
3178 quoted in bits) per second placed into the bucket, and maximum is the
3179 maximum number of bytes which can be in the bucket at any time.
3180
3181 For example, if delay pool number 1 is a class 2 delay pool as in the
3182 above example, and is being used to strictly limit each host to 64kbps
3183 (plus overheads), with no overall limit, the line is:
3184
3185delay_parameters 1 -1/-1 8000/8000
3186
3187 Note that the figure -1 is used to represent "unlimited".
3188
3189 And, if delay pool number 2 is a class 3 delay pool as in the above
3190 example, and you want to limit it to a total of 256kbps (strict limit)
3191 with each 8-bit network permitted 64kbps (strict limit) and each
3192 individual host permitted 4800bps with a bucket maximum size of 64kb
3193 to permit a decent web page to be downloaded at a decent speed
3194 (if the network is not being limited due to overuse) but slow down
3195 large downloads more significantly:
3196
3197delay_parameters 2 32000/32000 8000/8000 600/64000
3198
3199 There must be one delay_parameters line for each delay pool.
95e36d02 3200DOC_END
3201
59715b38 3202NAME: delay_initial_bucket_level
3203COMMENT: (percent, 0-100)
3204TYPE: ushort
3205DEFAULT: 50
95e36d02 3206IFDEF: DELAY_POOLS
59715b38 3207LOC: Config.Delay.initial
95e36d02 3208DOC_START
59715b38 3209 The initial bucket percentage is used to determine how much is put
3210 in each bucket when squid starts, is reconfigured, or first notices
3211 a host accessing it (in class 2 and class 3, individual hosts and
3212 networks only have buckets associated with them once they have been
3213 "seen" by squid).
95e36d02 3214DOC_END
6be2389e 3215
9cd6c6fb 3216NAME: incoming_icp_average
6be2389e 3217TYPE: int
3218DEFAULT: 6
3219LOC: Config.comm_incoming.icp_average
3220DOC_NONE
3221
9cd6c6fb 3222NAME: incoming_http_average
6be2389e 3223TYPE: int
3224DEFAULT: 4
3225LOC: Config.comm_incoming.http_average
3226DOC_NONE
3227
afc28c12 3228NAME: incoming_dns_average
3229TYPE: int
3230DEFAULT: 4
3231LOC: Config.comm_incoming.dns_average
3232DOC_NONE
3233
9cd6c6fb 3234NAME: min_icp_poll_cnt
6be2389e 3235TYPE: int
3236DEFAULT: 8
3237LOC: Config.comm_incoming.icp_min_poll
3238DOC_NONE
3239
afc28c12 3240NAME: min_dns_poll_cnt
3241TYPE: int
3242DEFAULT: 8
3243LOC: Config.comm_incoming.dns_min_poll
3244DOC_NONE
3245
9cd6c6fb 3246NAME: min_http_poll_cnt
6be2389e 3247TYPE: int
3248DEFAULT: 8
3249LOC: Config.comm_incoming.http_min_poll
3250DOC_START
b6a2f15e 3251 Heavy voodoo here. I can't even believe you are reading this.
6be2389e 3252 Are you crazy? Don't even think about adjusting these unless
3253 you understand the algorithms in comm_select.c first!
3254DOC_END
2b4283e4 3255
c5f627c2 3256NAME: max_open_disk_fds
3257TYPE: int
3258LOC: Config.max_open_disk_fds
3259DEFAULT: 0
6b53c392 3260DOC_START
3261 To avoid having disk as the I/O bottleneck Squid can optionally
3262 bypass the on-disk cache if more than this amount of disk file
3263 descriptors are open.
3264
3265 A value of 0 indicates no limit.
3266DOC_END
c5f627c2 3267
b540e168 3268NAME: offline_mode
3269TYPE: onoff
3270LOC: Config.onoff.offline
3271DEFAULT: off
3272DOC_START
3273 Enable this option and Squid will never try to validate cached
3274 objects.
3275DOC_END
3276
d548ee64 3277NAME: uri_whitespace
3278TYPE: uri_whitespace
3279LOC: Config.uri_whitespace
7e3ce7b9 3280DEFAULT: strip
d548ee64 3281DOC_START
3282 What to do with requests that have whitespace characters in the
3283 URI. Options:
3284
7e3ce7b9 3285 strip: The whitespace characters are stripped out of the URL.
3286 This is the behavior recommended by RFC2616.
d548ee64 3287 deny: The request is denied. The user receives an "Invalid
3288 Request" message.
3289 allow: The request is allowed and the URI is not changed. The
3290 whitespace characters remain in the URI. Note the
3291 whitespace is passed to redirector processes if they
3292 are in use.
3293 encode: The request is allowed and the whitespace characters are
3294 encoded according to RFC1738. This could be considered
3295 a violation of the HTTP/1.1
3296 RFC because proxies are not allowed to rewrite URI's.
3297 chop: The request is allowed and the URI is chopped at the
3298 first whitespace. This might also be considered a
3299 violation.
d548ee64 3300DOC_END
3301
376bb137 3302NAME: broken_posts
3303TYPE: acl_access
3304DEFAULT: none
3305LOC: Config.accessList.brokenPosts
c68e9c6b 3306DOC_START
376bb137 3307 A list of ACL elements which, if matched, causes Squid to send
3308 a extra CRLF pair after the body of a PUT/POST request.
3309
3310 Some HTTP servers has broken implementations of PUT/POST,
3311 and rely on a extra CRLF pair sent by some WWW clients.
3312
3313 Quote from RFC 2068 section 4.1 on this matter:
3314
3315 Note: certain buggy HTTP/1.0 client implementations generate an
3316 extra CRLF's after a POST request. To restate what is explicitly
3317 forbidden by the BNF, an HTTP/1.1 client must not preface or follow
3318 a request with an extra CRLF.
3319
6b53c392 3320Example:
3321 acl buggy_server url_regex ^http://....
3322 broken_posts allow buggy_server
c68e9c6b 3323DOC_END
9b094667 3324
e66d7923 3325NAME: mcast_miss_addr
3326IFDEF: MULTICAST_MISS_STREAM
3327TYPE: address
3328LOC: Config.mcast_miss.addr
3329DEFAULT: 255.255.255.255
b6a2f15e 3330DOC_START
3331 If you enable this option, every "cache miss" URL will
3332 be sent out on the specified multicast address.
3333
3334 Do not enable this option unless you are are absolutely
3335 certain you understand what you are doing.
3336DOC_END
e66d7923 3337
7e3ce7b9 3338NAME: mcast_miss_ttl
3339IFDEF: MULTICAST_MISS_TTL
3340TYPE: ushort
3341LOC: Config.mcast_miss.ttl
3342DEFAULT: 16
3343DOC_START
3344 This is the time-to-live value for packets multicasted
3345 when multicasting off cache miss URLs is enabled. By
3346 default this is set to 'site scope', i.e. 16.
3347DOC_END
3348
e66d7923 3349NAME: mcast_miss_port
3350IFDEF: MULTICAST_MISS_STREAM
3351TYPE: ushort
3352LOC: Config.mcast_miss.port
3353DEFAULT: 3135
b6a2f15e 3354DOC_START
efd900cb 3355 This is the port number to be used in conjunction with
b6a2f15e 3356 'mcast_miss_addr'.
3357DOC_END
e66d7923 3358
3359NAME: mcast_miss_encode_key
3360IFDEF: MULTICAST_MISS_STREAM
3361TYPE: string
3362LOC: Config.mcast_miss.encode_key
3363DEFAULT: XXXXXXXXXXXXXXXX
b6a2f15e 3364DOC_START
3365 The URLs that are sent in the multicast miss stream are
3366 encrypted. This is the encryption key.
3367DOC_END
e66d7923 3368
168dfda9 3369NAME: nonhierarchical_direct
3370TYPE: onoff
3371LOC: Config.onoff.nonhierarchical_direct
3372DEFAULT: on
3373DOC_START
3374 By default, Squid will send any non-hierarchical requests
3375 (matching hierarchy_stoplist or not cachable request type) direct
3376 to origin servers.
3377
3378 If you set this to off, then Squid will prefer to send these
3379 requests to parents.
3380
3381 Note that in most configurations, by turning this off you will only
3382 add latency to these request without any improvement in global hit
3383 ratio.
3384
3385 If you are inside an firewall then see never_direct instead of
3386 this directive.
168dfda9 3387DOC_END
3388
9b094667 3389NAME: prefer_direct
3390TYPE: onoff
3391LOC: Config.onoff.prefer_direct
168dfda9 3392DEFAULT: off
9b094667 3393DOC_START
168dfda9 3394 Normally Squid tries to use parents for most requests. If you by some
3395 reason like it to first try going direct and only use a parent if
3396 going direct fails then set this to off.
3397
3398 By combining nonhierarchical_direct off and prefer_direct on you
3399 can set up Squid to use a parent as a backup path if going direct
3400 fails.
9b094667 3401DOC_END
4d62b0af 3402
bcbc11b0 3403NAME: strip_query_terms
3404TYPE: onoff
3405LOC: Config.onoff.strip_query_terms
3406DEFAULT: on
3407DOC_START
3408 By default, Squid strips query terms from requested URLs before
3409 logging. This protects your user's privacy.
bcbc11b0 3410DOC_END
3411
b6a2f15e 3412NAME: coredump_dir
3413TYPE: string
3414LOC: Config.coredump_dir
3415DEFAULT: none
5ff76111 3416DEFAULT_IF_NONE: none
b6a2f15e 3417DOC_START
5ff76111 3418 By default Squid leaves core files in the directory from where
3419 it was started. If you set 'coredump_dir' to a directory
b6a2f15e 3420 that exists, Squid will chdir() to that directory at startup
3421 and coredump files will be left there.
5ff76111 3422
3423NOCOMMENT_START
3424# Leave coredumps in the first cache dir
3425coredump_dir @DEFAULT_SWAP_DIR@
3426NOCOMMENT_END
b6a2f15e 3427DOC_END
3428
07476a7f 3429NAME: redirector_bypass
3430TYPE: onoff
3431LOC: Config.onoff.redirector_bypass
3432DEFAULT: off
3433DOC_START
3434 When this is 'on', a request will not go through the
3435 redirector if all redirectors are busy. If this is 'off'
3436 and the redirector queue grows too large, Squid will exit
29de1a20 3437 with a FATAL error and ask you to increase the number of
07476a7f 3438 redirectors. You should only enable this if the redirectors
3439 are not critical to your caching system. If you use
3440 redirectors for access control, and you enable this option,
3441 then users may have access to pages that they should not
3442 be allowed to request.
3443DOC_END
3444
9bc73deb 3445NAME: ignore_unknown_nameservers
3446TYPE: onoff
3447LOC: Config.onoff.ignore_unknown_nameservers
3448DEFAULT: on
3449DOC_START
3450 By default Squid checks that DNS responses are received
3451 from the same IP addresses that they are sent to. If they
3452 don't match, Squid ignores the response and writes a warning
3453 message to cache.log. You can allow responses from unknown
3454 nameservers by setting this option to 'off'.
9bc73deb 3455DOC_END
3456
7e3ce7b9 3457NAME: digest_generation
3458IFDEF: USE_CACHE_DIGESTS
3459TYPE: onoff
3460LOC: Config.onoff.digest_generation
3461DEFAULT: on
3462DOC_START
3463 This controls whether the server will generate a Cache Digest
3464 of its contents. By default, Cache Digest generation is
3465 enabled if Squid is compiled with USE_CACHE_DIGESTS defined.
7e3ce7b9 3466DOC_END
3467
3468NAME: digest_bits_per_entry
3469IFDEF: USE_CACHE_DIGESTS
3470TYPE: int
3471LOC: Config.digest.bits_per_entry
3472DEFAULT: 5
3473DOC_START
3474 This is the number of bits of the server's Cache Digest which
3475 will be associated with the Digest entry for a given HTTP
3476 Method and URL (public key) combination. The default is 5.
7e3ce7b9 3477DOC_END
3478
3479NAME: digest_rebuild_period
3480IFDEF: USE_CACHE_DIGESTS
efd900cb 3481COMMENT: (seconds)
3482TYPE: time_t
7e3ce7b9 3483LOC: Config.digest.rebuild_period
efd900cb 3484DEFAULT: 1 hour
7e3ce7b9 3485DOC_START
3486 This is the number of seconds between Cache Digest rebuilds.
7e3ce7b9 3487DOC_END
3488
3489NAME: digest_rewrite_period
efd900cb 3490COMMENT: (seconds)
7e3ce7b9 3491IFDEF: USE_CACHE_DIGESTS
efd900cb 3492TYPE: time_t
7e3ce7b9 3493LOC: Config.digest.rewrite_period
efd900cb 3494DEFAULT: 1 hour
7e3ce7b9 3495DOC_START
3496 This is the number of seconds between Cache Digest writes to
6b53c392 3497 disk.
7e3ce7b9 3498DOC_END
3499
3500NAME: digest_swapout_chunk_size
efd900cb 3501COMMENT: (bytes)
3502TYPE: b_size_t
7e3ce7b9 3503IFDEF: USE_CACHE_DIGESTS
7e3ce7b9 3504LOC: Config.digest.swapout_chunk_size
efd900cb 3505DEFAULT: 4096 bytes
7e3ce7b9 3506DOC_START
3507 This is the number of bytes of the Cache Digest to write to
efd900cb 3508 disk at a time. It defaults to 4096 bytes (4KB), the Squid
3509 default swap page.
7e3ce7b9 3510DOC_END
3511
3512NAME: digest_rebuild_chunk_percentage
efd900cb 3513COMMENT: (percent, 0-100)
7e3ce7b9 3514IFDEF: USE_CACHE_DIGESTS
3515TYPE: int
3516LOC: Config.digest.rebuild_chunk_percentage
3517DEFAULT: 10
3518DOC_START
efd900cb 3519 This is the percentage of the Cache Digest to be scanned at a
3520 time. By default it is set to 10% of the Cache Digest.
7e3ce7b9 3521DOC_END
3522
efd900cb 3523NAME: chroot
3524TYPE: string
3525LOC: Config.chroot_dir
3526DEFAULT: none
3527DOC_START
3528 Use this to have Squid do a chroot() while initializing. This
3529 also causes Squid to fully drop root privileges after
3530 initializing. This means, for example, that if you use a HTTP
3531 port less than 1024 and try to reconfigure, you will get an
3532 error.
3533DOC_END
efd900cb 3534
3535NAME: client_persistent_connections
3536TYPE: onoff
3537LOC: Config.onoff.client_pconns
3538DEFAULT: on
3539DOC_NONE
3540
3541NAME: server_persistent_connections
3542TYPE: onoff
3543LOC: Config.onoff.server_pconns
3544DEFAULT: on
3545DOC_START
3546 Persistent connection support for clients and servers. By
3547 default, Squid uses persistent connections (when allowed)
3548 with its clients and servers. You can use these options to
3549 disable persistent connections with clients and/or servers.
efd900cb 3550DOC_END
9d24d603 3551
3d15e2d7 3552NAME: pipeline_prefetch
3553TYPE: onoff
3554LOC: Config.onoff.pipeline_prefetch
3555DEFAULT: on
3556DOC_START
3557 To boost the performance of pipelined requests to closer
3558 match that of a non-proxied environment Squid tries to fetch
3559 up to two requests in parallell from a pipeline.
3560DOC_END
3561
56fe752e 3562NAME: extension_methods
3563TYPE: wordlist
3564LOC: Config.ext_methods
3565DEFAULT: none
3566DOC_START
3567 Squid only knows about standardized HTTP request methods.
3568 You can add up to 20 additional "extension" methods here.
3569DOC_END
3570
b8a46de0 3571NAME: high_response_time_warning
3572TYPE: int
3573COMMENT: (msec)
3574LOC: Config.warnings.high_rptm
3575DEFAULT: 0
3576DOC_START
3577 If the one-minute median response time exceeds this value,
3578 Squid prints a WARNING with debug level 0 to get the
3579 administrators attention. The value is in milliseconds.
3580DOC_END
3581
3582NAME: high_page_fault_warning
3583TYPE: int
3584LOC: Config.warnings.high_pf
3585DEFAULT: 0
3586DOC_START
3587 If the one-minute average page fault rate exceeds this
3588 value, Squid prints a WARNING with debug level 0 to get
3589 the administrators attention. The value is in page faults
3590 per second.
3591DOC_END
3592
3593NAME: high_memory_warning
3594TYPE: b_size_t
3595LOC: Config.warnings.high_memory
3596DEFAULT: 0
3597DOC_START
3598 If the memory usage (as determined by mallinfo) exceeds
3599 value, Squid prints a WARNING with debug level 0 to get
3600 the administrators attention.
3601DOC_END
3602
65a53c8e 3603NAME: store_dir_select_algorithm
3604TYPE: string
3605LOC: Config.store_dir_select_algorithm
3606DEFAULT: least-load
3607DOC_START
3608 Set this to 'round-robin' as an alternative.
3609DOC_END
3610
225644d7 3611NAME: forward_log
3612IFDEF: WIP_FWD_LOG
3613TYPE: string
3614DEFAULT: none
3615LOC: Config.Log.forward
3616DOC_START
3617 Logs the server-side requests.
3618
3619 This is currently work in progress.
3620DOC_END
3621
7613d09c 3622NAME: ie_refresh
3623COMMENT: on|off
3624TYPE: onoff
3625LOC: Config.onoff.ie_refresh
3626DEFAULT: off
3627DOC_START
3628 Microsoft Internet Explorer up until version 5.5 Service
3629 Pack 1 has an issue with transparent proxies, wherein it
3630 is impossible to force a refresh. Turning this on provides
3631 a partial fix to the problem, by causing all IMS-REFRESH
3632 requests from older IE versions to check the origin server
3633 for fresh content. This reduces hit ratio by some amount
3634 (~10% in my experience), but allows users to actually get
3635 fresh content when they want it. Note that because Squid
3636 cannot tell if the user is using 5.5 or 5.5SP1, the behavior
3637 of 5.5 is unchanged from old versions of Squid (i.e. a
3638 forced refresh is impossible). Newer versions of IE will,
3639 hopefully, continue to have the new behavior and will be
3640 handled based on that assumption. This option defaults to
3641 the old Squid behavior, which is better for hit ratios but
3642 worse for clients using IE, if they need to be able to
3643 force fresh content.
3644DOC_END
3645
f66a9ef4 3646NAME: vary_ignore_expire
3647COMMENT: on|off
3648TYPE: onoff
3649LOC: Config.onoff.vary_ignore_expire
3650DEFAULT: off
3651DOC_START
3652 Many HTTP servers supporting Vary gives such objects
3653 immediate expiry time with no cache-control header
3654 when requested by a HTTP/1.0 client. This option
3655 enables Squid to ignore such expiry times until
3656 HTTP/1.1 is fully implemented.
3657 WARNING: This may eventually cause some varying
3658 objects not intended for caching to get cached.
3659DOC_END
3660
2b4283e4 3661EOF
7e3ce7b9 3662